SAML IDプロバイダーを追加する
SAML IDプロバイダー(IdP)の追加は、インバウンドSAMLの構成における最初のステップです。
このタスクを開始する
-
Admin Consoleで、 に移動します。
- [Add identity provider(IDプロバイダーを追加)]をクリックして、[SAML 2.0 IdP]を選択します。
- [Next(次へ)]をクリックします。
-
[General Settings(一般設定)]オプションを構成します。[View Setup Instructions(設定手順を表示)]のリンクが表示されたら、まずこれをクリックします。一部のプロバイダーには独自の詳細な手順があります。
Name(名前) このIdPの名前を入力します。 -
[Authentication Settings(認証設定)]オプションを構成します。
IdPの用途 次のいずれかのオプションを選択します。
- [SSO only(SSOのみ)]:このIdPをシングルサインオンのみに使用します。
- [Factor only(要素のみ)]:このIdPを多要素認証のみに使用します。
Account matching with Persistent Name ID(永続名IDとのアカウント照合) 名前IDと外部IDを照合することで関連するユーザーアカウントを決定するには、[Use Persistent Name ID (Higher Security)(永続名IDを使用(より高いセキュリティ))]を選択します。一致が見つからない場合、Oktaは[IdP username(IdPユーザー名)]をアカウント照合に使用します。受信アサーションは、名前IDにこのフォーマットを使用する必要があります:urn:oasis:names:tc:SAML:2.0:nameid-format:persistentユーザーとIdPをリンクする」を参照してください。 -
[Account matching with IdP Username(IdPユーザー名とのアカウント照合)]オプションを構成します。
IdP Username(IdPユーザー名) ユーザー名が含まれるSAMLアサーションでエンティティを選択します。 式を入力して値を再フォーマットできます。たとえば、SAMLアサーションのユーザー名がjohn.doe@mycompany.okta.comであれば、mycompany.oktaをendpointA.mycompanyに置き換えるように指定できます。これにより、ユーザー名はjohn.doe@endpointA.mycompany.comに変換されます。
式の入力では、Okta Expression Languageの構文を使用します。
Filter(フィルター) 式をユーザー名フィルターとして入力する場合にのみ、[Only allow usernames that match defined RegEx Pattern(定義正規表現パターンに一致するユーザー名のみを許可)]を選択します。フィルターを指定すると、認証前のユーザー名の選択が制限されます。 Match against(照合対象) 変換されたユーザー名が認証されるOktaのフィールドを選択します。 Account Link Policy(アカウントリンクポリシー) OktaがユーザーのIdPアカウントを一致するOktaアカウントと自動的にリンクするかどうかを指定します。
- [Disabled(無効)]アカウントリンキングを無効にします。
- [Automatic(自動)]:アカウントリンキングは自動的に行われます。
セキュリティを強化するために、SAML IdPの[Account matching with Persistent Name ID(永続名IDとのアカウント照合)]または[Account Link Policy(アカウントリンクポリシー)]を有効にします。「セキュリティのベストプラクティス」を参照してください。
Auto-link Restrictions(自動リンクの制限) 自動アカウントリンクが有効化されている場合は、リンクを特定のユーザーグループに制限するかを指定します。リンクを特定のユーザーグループに制限した場合、永続名IDの一致を使用しない限り、この制限は以前にリンクされたユーザーにも適用されます。 If no match is found(一致が見つからない場合) ユーザーアカウントをジャストインタイム(JIT)プロビジョニングで作成するか、ユーザーをOktaサインインページにリダイレクトするかを指定します。
- [Create new user (JIT)(新しいユーザーを作成(JIT))]:ユーザーアカウントをJITで作成します。このオプションを選択するときは、 に移動して[Enable Just In Time Provisioning(Just In Timeプロビジョニングを有効化)]をクリックする必要もあります。
- [Redirect to Okta sign-in page(Oktaサインインページにリダイレクト)]:ユーザーアカウントを作成するためにユーザーをOktaサインインページにリダイレクトします。
-
[JIT settings(JIT設定)]オプションを構成します。
Profile Source(プロファイルソース) このSAMLアサーションの情報でユーザーアカウントを更新するには、[Update attributes for existing users(既存のユーザーの属性を更新)]を選択します。このチェックボックスをオンにしない場合、プロファイル情報はプッシュされません。
Group Assignments(グループの割り当て) SAMLアサーションのユーザーを追加するグループを指定するオプションを選択します。 - [None(なし)]:認証済みのユーザーをグループに割り当てないでください。その他の情報は不要です。
- [Assign to specific groups(特定のグループに割り当てる)]:ユーザーをグループに割り当てます。[Specific Groups(特定のグループ)]フィールドが表示されます。ユーザーを追加するグループの名前を入力します。テキストに一致するグループ名がOktaに表示されます。追加するグループを選択します。さらにグループを追加するには、これらの手順を繰り返します。
- [Add user to missing groups(見つからないグループにユーザーを追加)]:ユーザーがまだ属していないSAMLアサーション内のグループにユーザーを追加します。ユーザーはすでに属しているどのグループからも削除されません。[SAML Attribute Name(SAML属性名)]フィールドが表示されます。値がグループメンバーシップを表すSAML属性の名前を入力します。値はSAMLアサーションの属性ステートメントに表示されます。それらの値が[Group Filter(グループフィルター)]フィールドの値と比較されます。一致する値によってJIT中にユーザーが割り当てられるグループが決まります。[Group Filter(グループフィルター)]フィールドは、セキュリティ許可リストとして機能します。ユーザーを追加するグループの名前を入力します。テキストに一致するグループ名がOktaに表示されます。追加するグループを選択します。グループをさらに追加するには、上記手順を繰り返します。
- [Full sync of groups(グループの完全同期)]:[SAML Attribute Name(SAML属性名)]に指定した属性で表されるグループにユーザーを割り当てます。このグループが[Group Filter(グループフィルター)]フィールドに表示されることを確認します。
ユーザーが[SAML Attribute Name(SAML属性名)]フィールドの値と一致しないグループのメンバーである場合、そのユーザーはグループから削除されます。
-
[SAML Protocol Settings(SAMLプロトコル設定)]オプションを構成します。
IdP Issuer URI(IdP発行者URI) IdPからの発行者URIを入力します。 IdP Single Sign-On URL(IdPシングルサインオンURL) IdPからのサインオンURLを入力します。[Sign SAML Authentication Requests(SAML認証リクエストに署名)]オプションを選択しているが、[Destination(宛先)]フィールドに宛先を指定していない場合、Oktaは自動的に認証リクエストをIdPシングルサインオンURLに送信します。 IdP Signature Certificate(IdP署名証明書) アサーションの署名に使用されるIdPからの証明書をアップロードします。[Browse files(ファイルを参照)]をクリックし、証明書ファイルを選択して[Open(開く)]をクリックします。 Request Binding(リクエストのバインディング) OktaがSAML承認リクエストメッセージをIdPに送信するために使用するSAML認証リクエストプロトコルのバインディングを選択します。
- [HTTP POST]:HTTP POSTメソッドを選択します。
- [HTTP REDIRECT]:HTTP REDIRECTメソッドを選択します。
Request Signature(リクエストの署名) Oktaが送信するSAML承認リクエストに署名するには、[Sign SAML Authentication Requests(SAML認証リクエストに署名)]を選択します。このオプションを選択すると、Oktaは自動的に[IdP Single Sign-On URL(IdPシングルサインオンURL)]フィールドに指定されたURLに承認リクエストを送信します。 Request Signature Algorithm(リクエストの署名アルゴリズム) OktaがIdPに送信する承認メッセージに署名するために使用する署名アルゴリズムを選択します。
- [SHA-1]:SHA-1アルゴリズムを選択します。
- [SHA-256]:SHA-256アルゴリズムを選択します。
Response Signature Verification(レスポンスの署名検証) Oktaが受信レスポンスを検証するときに受け入れるレスポンス署名のタイプを選択します。
- Response (レスポンス)
- Assertion(アサーション)
- Response or Assertion(レスポンスまたはアサーション)
Response Signature Algorithm(レスポンスの署名アルゴリズム) OktaがIdPから受信したSAMLメッセージとSAMLアサーションを検証するために使用する署名アルゴリズムを選択します。
- [SHA-1]:SHA-1アルゴリズムを選択します。
- [SHA-256]:SHA-256アルゴリズムを選択します。
Destination(宛先) OktaがSAML承認リクエストで送信する宛先属性を入力します。宛先を入力せず、[Sign SAML Authentication Requests(SAML認証リクエストに署名)]を選択した場合、Oktaは自動的に宛先属性を[IdP Single Sign-On URL(IdPシングルサインオンURL)]フィールドで指定されたURLとして送信します。 Okta Assertion Consumer Service URL(OktaアサーションコンシューマーサービスURL) 信頼固有のAssertion Consumer Service(ACS)URLを使用するか、organization全体で共有されたURLを使用するかを指定するオプションを選択します。
- Trust-specific(信頼固有)
- Organization(共有)
Max Clock Skew(最大クロックスキュー) アサーションの有効期間を指定します。数値を入力し、単位を選択します。認証プロセスは、現在の時刻とアサーションタイムスタンプの時間の差を計算します。Oktaは、その差が[Max Clock Skew(最大クロックスキュー)]値よりも大きくないことを検証します。 - [Finish(終了)]をクリックします。
Oktaメタデータの送信
IdPを作成したら、[Download metadata(メタデータをダウンロード)]をクリックしてこのプロバイダーのOkta SAMLメタデータにアクセスします。IdPの指示に従ってメタデータを提供します。
セキュリティのベストプラクティス
アカウントリンクを有効にする場合、次のベストプラクティスを検討してください。
IdPを構成する
次の設定を使用します。
-
[Group Assignment(グループの割り当て)]:外部IdPにそれぞれ作成済みのグループを指定します。
-
[If no match is found(一致が見つからない場合)]:[Create new user (JIT)(新しいユーザーを作成(JIT))]を選択して、Okta orgにユーザーをプロビジョニングします。
-
[Account Link Policy(アカウントリンクポリシー)]:厳格なアカウントリンクが強制されます。これは、IdPからの受信ユーザーとOktaの正しいユーザーとの照合に役立ちます。SAML IdPについては、[Account matching with Persistent Name ID(永続名IDとのアカウント照合)]を有効にします。または[Account Link Policy(アカウントリンクポリシー)]を選択します。
-
[Filter(フィルター)]:[Only allow usernames that match defined RegEx Pattern(定義された正規表現パターンに一致するユーザー名のみを許可)]を選択します。
-
外部IdPに作成されたユーザーのユーザー名ドメインがOkta orgのユーザーとは異なるときは、次のような正規表現パターンを使用します:
^[A-Za-z0-9._%+-]+@spokedomain\.com
-
すべてのユーザーのドメインが同一であれば、特定のユーザーを除外する正規表現パターンを使用します。リストには、Okta orgの既知の管理者がすべて含まれている必要があります。明示的に指定したユーザー以外のすべてのユーザーに許可するには、次の式を使用します:
^((?!(admin\.user\.1@company\.com|admin\.user\.2@othercompany\.com)).)*$
この式で作成されたユーザーは特権アカウントです。
式は動的に更新されません。Okta orgで新しい管理者または特権ユーザーが作成された場合、式を手動で更新する必要があります。
-
外部IdPに作成されたユーザーのユーザー名ドメインがOkta orgのユーザーとは異なるときは、次のような正規表現パターンを使用します:
認証ポリシー
- Okta管理者が外部IdPからのフェデレーションを通じて親orgにサインインできないようにします。グローバルセッションポリシーを作成して、外部IdPで連携したユーザーである場合に、Okta管理者グループでアクセスを拒否します。IdPは複数選択が可能です。このポリシーが最初に評価されるように設定します。
- 外部IdPからのフェデレーションを通じてサインインしたすべてのユーザーが、管理者用ダッシュボードにアクセスできないようにします。それぞれの外部IdPに対する認証ポリシーを作成します。管理者ダッシュボードなど、選択したアプリへのアクセスを拒否するようポリシーを構成します。機密性の高い任意のアプリに対するアクセスを制限できます。
- 可能な限り、すべてのOkta管理者にフィッシング耐性のあるAuthenticatorを使用するように要求します。Okta管理者グループに対して多要素認証(MFA)を要求するようにグローバルセッションポリシーを作成します。フィッシング耐性のあるAuthenticatorを要求する認証ポリシールールを構成します。
カスタム管理者ロールのあるユーザーは、Okta管理者グループと見なされます。そのためカスタム管理者ロールのあるユーザーは、Okta管理者に影響するポリシーに含まれます。
システムログでイベントを監視する
IdP経由の認証イベントをレビューするには、システムログを使用します。
eventType eq "user.authentication.auth_via_IDP"を見つけ、Okta System (SystemPrincipal)アクターとend userターゲットのあるイベントをレビューします。このようなイベントはアカウントリンク操作が発生したことを示します。ターゲットユーザーが特権ユーザー(または管理者)の場合、すべてのイベントをレビューし、潜在的なインシデントへの対処がすべて為されていることを確認します。