SAML IDプロバイダーを追加する

SAML IDプロバイダー(IdP)の追加は、インバウンドSAMLの構成における最初のステップです。

このタスクを開始する

  1. Admin Consoleで、セキュリティ(Security) > IDプロバイダー(Identity Providers)に移動します。

  2. IDプロバイダーを追加(Add identity provider)をクリックして、SAML 2.0 IdPを選択します。
  3. 次へ(Next)をクリックします。
  4. 一般設定(General Settings)オプションを構成します。設定手順を表示(View Setup Instructions)のリンクが表示されたら、まずこれをクリックします。一部のプロバイダーには独自の詳細な手順があります。
    名前(Name) このIdPの名前を入力します。
  5. 認証設定(Authentication Settings)オプションを構成します。
    IdPの用途(IdP Usage)

    次のいずれかのオプションを選択します。

    • SSOのみ(SSO only):このIdPをシングルサインオンのみに使用します。
    • 要素のみ(Factor only):このIdPを多要素認証のみに使用します。
    クレーム(Claims)

    このオプションを使用すると、IDプロバイダー(IdP)でのサインインとサービスプロバイダーへの認証に同じクレームを使用できます。ユーザー認証時の重複した認証チャレンジを排除するのに役立ちます。この機能を有効化すると、管理者はOktaにサインインする際にのみ認証が必要になります。アプリ・サインイン・ポリシーの一環としてMFAを必要とするサービスプロバイダーorg内のアプリにアクセスする場合に、2度目の認証を行う必要がありません。このIDプロバイダーからのクレームを信頼(Trust claims from this identity provider):1つのOkta orgから別のOkta orgに同じクレームを使用するには、このオプションを選択します。Okta間のクレーム共有(Okta-to-Okta Claims Sharing)機能をアクティブ化します。

    クレームの共有とマッピングをセットアップする手順については、 「クレームの共有を構成する」を参照してください。

    永続名IDとのアカウント照合(Account matching with Persistent Name ID) 名前IDと外部IDを照合することで関連するユーザーアカウントを決定するには、Use Persistent Name ID (Higher Security)(永続名IDを使用(より高いセキュリティ))を選択します。一致が見つからない場合、OktaはIdPユーザー名(IdP username)をアカウント照合に使用します。受信アサーションは、名前IDにこのフォーマットを使用する必要があります:urn:oasis:names:tc:SAML:2.0:nameid-format:persistentユーザーとIdPをリンクする」を参照してください。
  6. IdPユーザー名とのアカウント照合(Account matching with IdP Username)オプションを構成します。
    IdPユーザー名(IdP Username)(IdP username) ユーザー名が含まれるSAMLアサーションでエンティティを選択します。

    式を入力して値を再フォーマットできます。たとえば、SAMLアサーションのユーザー名がjohn.doe@mycompany.okta.comであれば、mycompany.oktaendpointA.mycompanyに置き換えるように指定できます。これにより、ユーザー名はjohn.doe@endpointA.mycompany.comに変換されます。

    式の入力では、Okta Expression Languageの構文を使用します。

    フィルター(Filter) 式をユーザー名フィルターとして入力する場合にのみ、定義正規表現パターンに一致するユーザー名のみを許可(Only allow usernames that match defined RegEx Pattern)を選択します。フィルターを指定すると、認証前のユーザー名の選択が制限されます。
    照合対象(Match against) 変換されたユーザー名が認証されるOktaのフィールドを選択します。
    アカウントリンクポリシー(Account link policy)

    ユーザーのIdPアカウントを一致するOktaアカウントと自動的にリンクする場合には、自動リンクを有効にする(Enable automatic linking)を選択します。「アカウントリンク」を参照してください。

    自動リンクフィルター(Auto-link filters)

    以下のオプションは、自動リンクを有効にする(Enable automatic linking)を選択した場合に表示されます。

    • 特定のグループを含める(Include specific groups):指定したグループ内のユーザーをアカウントリンクに含めます。
    • 特定のユーザーを除外(Exclude specific users):指定したユーザーをアカウントリンクから除外します。
    • 管理者を除外(Exclude admins):管理者ロールを持つユーザーをアカウントリンクから除外します。
    一致が見つからない場合(If no match is found)

    ユーザーアカウントをジャストインタイム(JIT)プロビジョニングで作成するか、ユーザーをOktaサインインページにリダイレクトするかを指定します。

    • Create new user (JIT)(新しいユーザーを作成(JIT)):ユーザーアカウントをJITで作成します。このオプションを選択するときは、設定(Settings) > カスタマイズ(Customization) > Just In Timeプロビジョニング(Just In Time Provisioning) に移動してJust In Timeプロビジョニングを有効化(Enable Just In Time Provisioning)をクリックする必要もあります。
    • Oktaサインインページにリダイレクト(Redirect to Okta sign-in page):ユーザーアカウントを作成するためにユーザーをOktaサインインページにリダイレクトします。
  7. JIT設定(JIT settings)(JIT Settings)オプションを構成します。

    プロファイルソース(Profile Source)

    このSAMLアサーションの情報でユーザーアカウントを更新するには、既存のユーザーの属性を更新(Update attributes for existing users)を選択します。このチェックボックスをオンにしない場合、プロファイル情報はプッシュされません。

    再アクティベーションの設定(Reactivation Settings) このオプションは、既存のユーザーの属性を更新(Update attributes for existing users)が選択された場合のみ表示されます。
    • 非アクティブ化されているOktaユーザーを再アクティブ化(Reactivate users who are deactivated in Okta): 非アクティブ化されたOktaユーザーをアプリで再アクティブ化するかどうかを管理者が選択できるようにします。
    • Oktaで一時停止されたユーザーの一時停止を解除(Unsuspend users who are suspended in Okta):アプリで再アクティブ化したときに一時停止中のOktaユーザーの一時停止を解除するかどうかを管理者が選択できるようにします。
    Group Assignments(グループ割り当て) SAMLアサーションのユーザーを追加するグループを指定するオプションを選択します。
    • なし(None):認証済みのユーザーをグループに割り当てないでください。その他の情報は不要です。
    • 特定のグループに割り当てる(Assign to specific groups):ユーザーをグループに割り当てます。特定のグループ(Specific Groups)フィールドが表示されます。ユーザーを追加するグループの名前を入力します。テキストに一致するグループ名がOktaに表示されます。追加するグループを選択します。さらにグループを追加するには、これらの手順を繰り返します。
    • 見つからないグループにユーザーを追加(Add user to missing groups):ユーザーがまだ属していないSAMLアサーション内のグループにユーザーを追加します。ユーザーはすでに属しているどのグループからも削除されません。SAML属性名(SAML Attribute Name)フィールドが表示されます。値がグループメンバーシップを表すSAML属性の名前を入力します。値はSAMLアサーションの属性ステートメントに表示されます。それらの値がグループフィルター(Group Filter)フィールドの値と比較されます。一致する値によってJIT中にユーザーが割り当てられるグループが決まります。グループフィルター(Group Filter)フィールドは、セキュリティ許可リストとして機能します。ユーザーを追加するグループの名前を入力します。テキストに一致するグループ名がOktaに表示されます。追加するグループを選択します。グループをさらに追加するには、上記手順を繰り返します。
    • グループの完全同期(Full sync of groups)SAML属性名(SAML Attribute Name)に指定した属性で表されるグループにユーザーを割り当てます。このグループがグループフィルター(Group Filter)フィールドに表示されることを確認します。

    ユーザーがSAML属性名(SAML Attribute Name)フィールドの値と一致しないグループのメンバーである場合、そのユーザーはグループから削除されます。

  8. ログアウト(Logout)オプションを構成します。

    IdPがログアウトするタイミング(IdP logs out when) ユーザーがログアウト開始アプリやOktaからサインアウトした際にIdPからサインアウトさせるには、ユーザーが別のログアウト開始アプリまたはOktaからログアウトする(User logs out of other logout-initiating apps or Okta)を選択します。
    ログアウトエンドポイントURL(Logout endpoint URL) Oktaがアプリ起点のログアウトリクエストを送信するIdPのLogoutエンドポイントURLを入力します。
    リクエストのバインディングからログアウト(Logout request binding) HTTP POSTまたはHTTP REDIRECTのいずれかを選択します。
  9. SAMLプロトコル設定(SAML Protocol Settings)(SAML Protocol Settings)オプションを構成します。

    IdP発行者URI(IdP Issuer URI) IdPからの発行者URIを入力します。
    IdPシングルサインオンURL(IdP Single Sign-On URL) IdPからのサインオンURLを入力します。SAML認証リクエストに署名(Sign SAML Authentication Requests)オプションを選択しているが、宛先(Destination)フィールドに宛先を指定していない場合、Oktaは自動的に認可リクエストをIdPシングルサインオンURLに送信します。
    IdP署名証明書(IdP Signature Certificate) アサーションの署名に使用されるIdPからの証明書をアップロードします。ファイルを参照(Browse files)をクリックし、証明書ファイルを選択して開く(Open)をクリックします。2枚の証明書をアップロードできます。
    リクエストのバインディング(Request Binding)

    OktaがSAML認可リクエストメッセージをIdPに送信するために使用するSAML認証リクエストプロトコルのバインディングを選択します。

    • HTTP POST:HTTP POSTメソッドを選択します。
    • HTTP REDIRECT:HTTP REDIRECTメソッドを選択します。
    アプリケーションコンテキスト(Application context) Oktaアプリケーションコンテキストを送信する(Send Okta application context)を選択し、SAMLまたはOIDCリクエストでアプリ名とアプリケーションIDをIdPに転送します。これにより、IdPはコンテキストに応じた認証決定を下すことができます。
    リクエストの署名(Request Signature) Oktaが送信するSAML認可リクエストに署名するには、SAML認証リクエストに署名(Sign SAML Authentication Requests)を選択します。このオプションを選択すると、Oktaは自動的にIdPシングルサインオンURL(IdP Single Sign-On URL)(IdP Single Sign-On URL field)フィールドに指定されたURLに認可リクエストを送信します。
    リクエストの署名アルゴリズム(Request Signature Algorithm)

    OktaがIdPに送信する認可メッセージに署名するために使用する署名アルゴリズムを選択します。

    • SHA-1:SHA-1アルゴリズムを選択します。
    • SHA-256:SHA-256アルゴリズムを選択します。
    リクエストダイジェストアルゴリズム(Request Digest Algorithm)

    OktaがSAML認証リクエストに署名する前にハッシュ化するために使用するダイジェストアルゴリズム(XML署名のDigestMethod要素)を選択します。

    • 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認可リクエストで送信する宛先属性を入力します。宛先を入力せず、SAML認証リクエストに署名(Sign SAML Authentication Requests)を選択した場合、Oktaは自動的に宛先属性をIdPシングルサインオンURL(IdP Single Sign-On URL)フィールドで指定されたURLとして送信します。
    OktaアサーションコンシューマーサービスURL(Okta Assertion Consumer Service URL)

    信頼固有のAssertion Consumer Service(ACS)URLを使用するか、organization全体で共有されたURLを使用するかを指定するオプションを選択します。

    • 信頼固有(Trust-specific)
    • 共有(Organization)(Organization (shared))
    最大クロックスキュー(Max Clock Skew) アサーションの有効期間を指定します。数値を入力し、単位を選択します。認証プロセスは、現在の時刻とアサーションタイムスタンプの時間の差を計算します。Oktaは、その差が最大クロックスキュー(Max Clock Skew)値よりも大きくないことを検証します。
  10. 終了(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については、永続名IDとのアカウント照合(Account matching with Persistent Name ID)を有効にします。

  • フィルター(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管理者が外部IdPからのフェデレーションを通じて親orgにサインインできないようにします。Oktaサインオンポリシーを構成して、外部IdPで連携したユーザーである場合に、Okta管理者グループでアクセスを拒否します。IdPは複数選択が可能です。このポリシーが最初に評価されるように設定します。
  • 外部IdPからのフェデレーションを通じてサインインしたすべてのユーザーが、管理者用ダッシュボードにアクセスできないようにします。それぞれの外部IdPに対するアプリサインオンポリシーを構成します。管理者ダッシュボードなど、選択したアプリへのアクセスを拒否するようポリシーを構成します。機密性の高い任意のアプリに対するアクセスを制限できます。

システムログでイベントを監視する

IdP経由の認証イベントをレビューするには、システムログを使用します。

eventType eq "user.authentication.auth_via_IDP"を見つけ、Okta System (SystemPrincipal)アクターとend userターゲットのあるイベントをレビューします。このようなイベントはアカウントリンク操作が発生したことを示します。ターゲットユーザーが特権ユーザー(または管理者)の場合、すべてのイベントをレビューし、潜在的なインシデントへの対処がすべて為されていることを確認します。

次の手順

IDプロバイダーのメタデータを追加する