Docs/SSO設定/SAML 2.0 設定

SAML 2.0設定

SAMLプロトコルをサポートするIDプロバイダーでSAML 2.0を使用したシングルサインオンを構成します。このガイドは、準拠する任意のIdPに適用可能な一般的なSAMLセットアップをカバーします。

前提条件

  • SAML 2.0準拠 IDプロバイダー (Okta、Azure AD、OneLogin、PingFederateなど)
  • アプリケーションを作成および構成するためのIDプロバイダーへの管理者アクセス
  • SecureCodingHub組織管理者アカウント

サービスプロバイダー詳細

これらの値は、IDプロバイダーでSecureCodingHubを構成するときに必要です:

設定
SP Entity IDhttps://api.limeplate.com
ACS URL (Assertion Consumer Service)https://api.limeplate.com/api/sch/auth/sso/callback/saml
SPメタデータURLhttps://api.limeplate.com/api/sch/auth/sso/metadata
Name ID形式urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
バインディングHTTP-POST

ステップ1 — IDプロバイダーを構成

1
新しいSAMLアプリケーションを作成
IDプロバイダーの管理コンソールで、SecureCodingHub用の新しいSAML 2.0アプリケーションを作成します。
2
ACS URLとEntity IDを設定
上のサービスプロバイダー詳細テーブルから、ACS URLとSP Entity IDをIdPのアプリケーション構成にコピーします。
3
属性マッピングを構成
必須のemail属性をNameIDとしてマップします。オプションで、自動プロフィール入力のためにfirstNamelastName属性をマップします。
4
IdPメタデータURLをダウンロードまたはコピー
次のステップでSecureCodingHubを構成するときに、IdPのメタデータURL (または署名証明書) が必要になります。

ステップ2 — SecureCodingHubでSAMLを構成

1
SSO設定を開く
組織管理者としてログインし、サイドバーからSSO設定に移動します。
2
SAMLプロトコルを選択
ドロップダウンからSSOプロトコルとしてSAMLを選択します。
3
IdPメタデータURLを入力
IDプロバイダーのメタデータURLを貼り付けます。これにより、SecureCodingHubがエンドポイントと証明書を自動的に検出できるようになります。
4
署名証明書を追加 (オプション)
IdPがメタデータURLを公開していない場合は、IdP署名証明書を直接貼り付けます。
5
SSOを有効にして保存
SSOをオンに切り替え、保存をクリックして組織のSAML認証をアクティブにします。
app.securecodinghub.com/organization/sso
シングルサインオン
IDプロバイダー経由で学習者を認証します。
OIDC
OpenID Connect — 推奨
SAML
SAML 2.0フェデレーション
https://api.limeplate.com/api/sch/auth/sso/saml/{orgId}
https://idp.example.com/app/saml2/sso/metadata
-----BEGIN CERTIFICATE----- MIICmzCCAYMCBgF8... ... -----END CERTIFICATE-----
SSO有効

ステップ3 — テスト

1
シークレットウィンドウを開く
管理者アカウントとのセッション競合を避けるために、プライベート / シークレットブラウザウィンドウを使用します。
2
SSOログインページに移動
app.securecodinghub.comに移動し、SSOでサインインをクリックします。
3
企業メールを入力
システムは組織のSSO構成を検出し、IdPにリダイレクトします。
4
IdPで認証
IDプロバイダーでログインフローを完了します。SecureCodingHubにリダイレクトされ、自動的にログインされるはずです。

属性マッピング

SecureCodingHubはSAMLアサーションから次の属性を読み取ります:

SAML属性SecureCodingHubフィールド必須
NameID (email形式)メールはい
givenName (…/claims/givenname)名前 (姓と連結されて単一の表示名になる第1部)いいえ
surname (…/claims/surname)名前 (プロビジョニング時にgivenNameと結合される第2部)いいえ
証明書の有効期限: SAML証明書は期限切れになります。ログインの中断を避けるため、有効期限前に証明書をローテーションするカレンダーリマインダーを設定してください。

実環境でのSAMLレスポンスの読み方

SAMLが失敗した場合、診断への最速の道はブラウザの症状ではなく実際のSAMLレスポンスを検査することです。SAMLトレーサーブラウザ拡張機能をインストールし、失敗したログインを再現し、IdPがACS URLに送信するPOSTを見ます。3つのフィールドがほぼすべてを伝えます。Issuer要素は、IdPメタデータで公開されているentityIDと一致する必要があります。Conditions内にネストされたAudience要素は、SecureCodingHubで構成されたSP Entity IDと一致する必要があります。Subject NameIDは、指定した形式でのユーザーのメールアドレスである必要があります。

これらのフィールド以外に、IdPがサポートしている場合はInResponseTo識別子を確認し、レスポンスが署名されていること (ds:Signature要素が存在) を確認し、NotBeforeおよびNotOnOrAfterタイムスタンプが現在のクロックと一貫していることを検証します。IdPとSP間の重大なクロックスキューは、それ以外の点で有効なアサーションの静かな拒否を引き起こします。レスポンスが整形されているように見えるがアサーションがまだ拒否される場合、トレーサーからbase64エンコードされたSAMLResponse値をコピーし、オフラインでデコードします。SAML 2.0仕様に対して生のXMLを読むことは、欠落した属性または誤って構成されたステートメントを見つける最も信頼できる方法です。

ヘルプをIdPチームに依頼するかSPチームに依頼するかのタイミング

ほとんどのSAMLサポートチケットは、エラーがフェデレーションのどちら側に存在するかを知っていれば、1分以内にトリアージできます。経験則として、オーディエンスとissuerの不一致はSP側の問題です: SecureCodingHubの構成は、IdPが生成していない値を期待するか、IdPが署名しているのとは異なるSP entity IDに対して構成されていました。これらは、SecureCodingHub SSO設定またはIdPアプリケーション構成のSP Entity IDとACS URLを調整することで解決されます。最初にSecureCodingHub側に連絡してください。

クレームと属性マッピングの問題は通常IdP側です。ユーザーが名がなかったり、間違ったメールアドレスや予期しないロール割り当てでSecureCodingHubに着地する場合、IdPはSPが消費できない属性を発行しています。IdP管理者は、アプリケーション構成でクレームを追加または名前変更する必要があります。証明書と署名の失敗は分割されます: IdP証明書が期限切れまたはローテーションされた場合、それはIdP側の修正です。SecureCodingHubが以前有効な署名の信頼を停止した場合、SP側に保存されているメタデータまたは証明書が古くなっており、更新する必要があります。疑わしい場合は、SAMLトレーサーの出力をキャプチャし、両方のチームと共有してください。レスポンス自体が、どちらの側が次の動きを所有するかを示します。プロトコル選択ガイダンスについてはSSO概要を参照。

SAML 2.0: よくある質問

「フェデレーテッドSAML」とは実際に何を意味しますか?

フェデレーテッドSAMLは、ユーザーがIdPで一度認証し、そのアサーションがSPによって受け入れられるように、IDプロバイダー (IdP) とサービスプロバイダー (SP) の間で確立された信頼関係を指します。フェデレーションは署名されたXML契約です: 各側が他の側のメタデータと署名証明書を信頼します。IdPメタデータをアップロードし、IdPがSP entity IDを知ると、SecureCodingHubはフェデレーションの一部になります。

ログインを壊さずにSAML証明書をローテーションする方法は?

SAML証明書のローテーションは、短い重複ウィンドウで実行するのが最適です。IdPがメタデータで複数の署名証明書の公開をサポートする場合、古い証明書を廃止する前に新しい証明書を追加し、SecureCodingHubにIdPメタデータを再フェッチさせて、両方の証明書が切り替え中に信頼されるようにします。IdPが新しいキーで署名を開始したら、1日ログインを監視し、その後メタデータから古い証明書を削除します。最も一般的なプロダクションの停止は、金曜日に重複なしでローテーションすることです。

SAML vs OAuth vs OpenID Connect — どれを選ぶべきですか?

チームがSAML vs OAuth vs OpenID Connectを比較するとき、実用的な答えは運用上の適合に従うことです。SAML 2.0は成熟したXMLベースのフェデレーション標準で、ADFSやPingFederateのようなエンタープライズIdPで支配的です。OAuth 2.0だけは認可フレームワークで、認証ではありません。OpenID ConnectはOAuth 2.0の上にIDを階層化し、Azure ADとOktaのモダンデフォルトです。SAMLまたはOIDCのいずれかが、SecureCodingHubで同等のSSOセキュリティを提供します。

失敗をトラブルシューティングするためにSAMLレスポンスをデコードする方法は?

SAMLレスポンスをデコードするには、IdPがACS URLにポストするbase64エンコードされたSAMLResponseパラメータをキャプチャします — SAMLトレーサーブラウザ拡張機能が取得する最も簡単な方法です。値を生のXMLにbase64デコードし、Issuer、Audience、NameID、タイムスタンプを検査します。ほとんどの失敗は、これらの4つのフィールドをSecureCodingHub SSO設定およびIdPのアプリケーション構成に構成された値と比較すると解決されます。