エンタープライズはじめに

IDプロバイダーの管理

SAMLまたはOIDCシングルサインオン用のカスタムIDプロバイダー(IdP)を設定することで、組織のユーザーが既存の企業認証情報を使って認証できるようにします。

注意:

IDプロバイダーの管理は、Enterpriseプランの管理者のみが利用できます。

カスタムIDプロバイダー(IdP)を設定して、組織のシングルサインオン(SSO)を有効にします。IdPを設定すると、IDE、Bob Shell、Bob WebでIBM Bobにログインする際、Bobが認証のためにそのIdPにリダイレクトします。

BobではSAMLおよびOpenID Connect(OIDC)IDプロバイダーを設定できます。組織のIDプラットフォームに合ったプロトコルを使用してください。

SSOプロトコルの互換性

IBM Bobは以下のSSOプロトコルと互換性があります:

  • SAML(Security Assertion Markup Language)
  • OIDC(OpenID Connect)

検証済みOIDCプロバイダー

設定とトークンの要件を満たす他のOIDCプロバイダーも使用できますが、以下のプラットフォームは検証済みです:

  • Auth0
  • Keycloak
  • Okta
  • PingOne

IDプロバイダーの追加

IdPの追加は2ステップのプロセスです。まずIdPを設定して保存し、次にそれを使用するメールドメインを追加します。

ステップ1:IDプロバイダーの設定

IBM Bob管理ページに移動します。

Authenticationタブを選択します。

Add IdPをクリックします。 IdPの名前を入力します。 IdPの種類を選択します:SAMLまたはOIDC。 サービスプロバイダー(SP)の認証情報を生成します。

BobはSAML認証リクエストに署名するために、SPの秘密鍵とSP証明書を必要とします。これらはopensslコマンドラインツールを使用して自分で生成する必要があります。

注意:

すでにSPキーペアと証明書がある場合は、次のステップにスキップしてください。

次のコマンドを実行してSPの秘密鍵を生成します:

openssl genrsa -out sp_private_key.pem 2048

次に、このコマンドを実行して秘密鍵からSP証明書を生成します。/CN/O/Cの値を、わかりやすい証明書名、組織名、2文字の国コードに置き換えてください:

openssl req -new -x509 -key sp_private_key.pem -out sp_certificate.pem -days 365 -subj "/CN=Bob SAML SP/O=IBM/C=US"
注意:

sp_certificate.pemファイルは、IdPがBobからのリクエストの署名を検証できるように、IdPにもアップロードする必要があります。

IdPの設定の詳細を入力します。 以下のセクションでプロトコル固有の要件を確認します。 Saveをクリックします。

IdPが作成され、Authenticationタブの表に表示されます。

SAML設定

SAMLには以下の設定の詳細が必要です:

Identity providerフィールド — これらはIdPから取得します:

  • idp_entity_id — IdPの一意の識別子(例:https://idp.example.com
  • idp_sso_url — BobがSSO認証リクエストを送信するSSO URL
  • idp_certificate — IdPからのSAMLレスポンスを検証するために使用されるPEMエンコードされたX.509証明書

Service providerフィールド — 前のステップで生成したファイルを使用します:

  • sp_private_keysp_private_key.pemの内容
  • sp_certificatesp_certificate.pemの内容

オプションフィールド:

  • idp_slo_url — IdPのSingle Logout URL。Single LogoutはBobではまだ完全には実装されていません。

Attribute mappingセクションで、IdPのユーザー属性をIBM Bobのユーザーフィールドにマッピングします。マッピング形式はBob属性名 → IdP属性名またはURIです。正しい属性名についてはIdPの設定を確認してください。

  • email (必須) — ユーザーのメールアドレス
  • name(オプション)— ユーザーのフルネーム表示名
  • given_name(オプション)— ユーザーの名
  • family_name(オプション)— ユーザーの姓
  • groups(オプション)— ユーザーのグループ

IdP管理者:新しいOIDCクライアントの登録

Bob インスタンス管理者が Bob で OIDC IdP レコードを設定する前に、IdP 管理者がまず ID プロバイダー内で OIDC アプリケーション(クライアント)を作成する必要があります。このステップで生成された値が、Bob インスタンス管理者が Bob に IdP を追加する際に入力するものになります。

アプリケーションタイプと付与タイプ

ID プロバイダーで Web アプリケーション(サーバーサイド / 機密クライアント)を作成し、付与タイプ Authorization Code を有効にします。Bob は Authorization Code フローのみを使用します — Implicit、Device Code、Client Credentials は選択しないでください。

リダイレクト URI

以下のコールバック URL を OIDC アプリケーションに登録してください。ほとんどのプロバイダーは文字列を厳密に照合するため、正確にコピーしてください:

https://api.us-east.bob.ibm.com/authn/v1/auth/callback

クライアントで有効にするスコープ

スコープ目的必須
openidOIDC モードを有効にし、id_token を返すはい
emailユーザーのメールアドレスを id_token またはユーザーinfo エンドポイント経由で公開するはい
offline_accessアクセストークンとともに refresh_token を付与するほとんどのプロバイダーでは「はい」

Bob は、すべての Authorization Code 交換レスポンスに refresh_token が含まれていることを要求します。プロバイダーが別のメカニズム(例:プロバイダー固有のスコープ、またはコード交換ごとに無条件に)でリフレッシュトークンを発行する場合は、それに応じて設定してください — ただし、クライアントがリフレッシュトークンを受け取れることを確認してください。refresh_token が返されない場合、ログインは中断されます。

トークンエンドポイントの認証方式

OIDC アプリケーションのトークンエンドポイント認証方式を client_secret_post に設定してください。Bob はすべてのトークンリクエストで client_idclient_secret をフォームボディパラメーターとして送信します。client_secret_basicprivate_key_jwtnone は使用できません。

トークン設定

設定必要な値
アクセストークンの形式任意(JWT または不透明 — Bob は IdP のアクセストークンを直接解析しません)
ID トークンすべての Authorization Code 交換とすべてのトークン更新時に発行される必要がある
ID トークン署名アルゴリズムRS256ES256、または PS256
リフレッシュトークンのローテーションリフレッシュトークンのローテーションを使用できます。Bob は各更新時に新しいトークンを保存します。プロバイダーがリフレッシュトークンをローテーションする場合、Bob が置換トークンを受信した後にのみプロバイダーが以前のトークンを無効化するようにしてください(標準的なローテーション動作。猶予期間なしの一回限りの使用ではありません)。

Bob インスタンス管理者に渡す値

クライアントアプリケーションが作成されたら、以下の値を Bob インスタンス管理者に渡してください:

取得場所Bob 設定フィールド
クライアント IDアプリケーションの資格情報ページclient_id
クライアントシークレットアプリケーションの資格情報ページclient_secret
Authorization エンドポイント URLプロバイダーの OIDC エンドポイントページまたは .well-known/openid-configurationauthorization_endpoint
トークンエンドポイント URLプロバイダーの OIDC エンドポイントページまたは .well-known/openid-configurationtoken_endpoint
JWKS URIプロバイダーの OIDC エンドポイントページまたは .well-known/openid-configurationjwks_uri
Issuer URLプロバイダーの OIDC エンドポイントページまたは .well-known/openid-configurationissuer
ユーザーinfo エンドポイント URL(任意)プロバイダーの OIDC エンドポイントページまたは .well-known/openid-configurationuserinfo_endpoint
ヒント:

ほとんどのプロバイダーは https://<プロバイダードメイン>/.well-known/openid-configuration ですべてのエンドポイント URL を公開しています。

OIDC設定

OIDCプロバイダーディスカバリーを使用できます。Retrieve configurationボタンをクリックして、プロバイダーの.well-known/openid-configurationドキュメントからエンドポイントフィールドを自動入力するか、各エンドポイントURLを手動で入力できます。

OIDCには以下の設定の詳細が必要です:

フィールド必須説明
client_idはいIDプロバイダーに登録されたクライアント識別子。
client_secretはい登録されたアプリケーションのクライアントシークレット。Bobはこれを安全に保存し、APIレスポンスで返すことはありません。
scopesはい認証フロー中に要求されるスコープ。このリストにはopenidを含める必要があります。通常、emailと、offline_accessなどのリフレッシュトークンを発行するために使用されるプロバイダー固有のスコープも含まれます。
authorization_endpointはいBobがユーザーをサインインのためにリダイレクトする、HTTPS認証URL。
token_endpointはい認証コードをトークンと交換するために使用される、HTTPSトークンURL。
jwks_uriはいid_tokenレスポンスの署名を検証するために使用される、JSON Web Key Set(JWKS)のHTTPS URL。
issuerいいえIDプロバイダーのHTTPS発行者識別子。
promptいいえ認証リクエストに転送されるOIDC prompt値。

OIDCはAttribute mappingを使用しません。Bobはid_tokenemailクレームからユーザーのメールアドレスを直接読み取ります。

OIDC設定例

{
  "authorization_endpoint": "https://corp.okta.com/oauth2/default/v1/authorize",
  "token_endpoint": "https://corp.okta.com/oauth2/default/v1/token",
  "issuer": "https://corp.okta.com/oauth2/default",
  "client_id": "0oa1b2c3d4e5f6g7h8i9",
  "client_secret": "super-secret-value",
  "scopes": ["openid", "email", "offline_access"]
}

OIDC要件と制限事項

  • Bobは認証コード交換レスポンスにrefresh_tokenを必要とします。プロバイダーがこれを返さない場合、ログインは失敗します。
  • ほとんどのプロバイダーでは、scopesoffline_accessを追加することでリフレッシュトークンの発行がトリガーされます。一部のプロバイダーは異なる動作を使用するため、プロバイダーのドキュメントを確認してください。
  • OIDCバックチャネルログアウトは利用できません。
  • プロバイダーがエンドポイントURLを変更した場合は、BobのIdP設定を更新してください。

ステップ2:ドメインフィルターの追加

IdPを保存した後、認証にそのIdPを使用するメールドメインを追加します。

Authenticationタブで、作成したIdPを見つけてその設定を開きます。 Domain filtersセクションで、このIdPを使用するメールドメインを追加します。設定済みのドメインに一致するメールアドレスを持つユーザーは、ログイン時にこのIdPにリダイレクトされます。 変更を保存します。

注意:

各メールドメインは1つのIdPにのみ関連付けることができます。あるドメインが別のIdPですでに使用されている場合、競合が解決されるまで設定を保存できません。SSOが適用される前に、各ドメインを確認する必要があります。ドメイン所有権の確認を参照してください。

ドメイン所有権の確認

IBM Bobでは、SSOが適用される前に、組織が各ドメインを所有していることを確認する必要があります。確認は、ドメインにDNS TXTレコードを追加することで行います。

IBM Bob管理ページに移動します。 Authenticationタブを選択します。 確認したいドメインを含むIdPを選択します。 Domain filtersセクションでドメインを見つけ、表示されている確認コードをコピーします。 DNSプロバイダーで、以下の形式でドメインにTXTレコードを追加します:

bob-verify=<verification-code>

_verification-code_をDomain filtersセクションからコピーしたコードに置き換えてください。 Authenticationタブに戻り、ドメインのCheck verificationをクリックします。

IBM BobがTXTレコードを正常に検出すると、ドメインの確認ステータスがVerifiedに更新されます。DNS変更が反映されるまで時間がかかる場合があります。

IDプロバイダーの削除

IBM Bob管理ページに移動します。 Authenticationタブを選択します。 削除するIdPを見つけてDeleteをクリックします。 確認ダイアログでConfirmをクリックします。

警告:

IdPを削除すると、関連するすべてのドメインのSSO設定が削除されます。そのIdPを認証に使用していたユーザーは、別の方法でログインする必要があります。IdPに確認済みのドメインがある場合は警告が表示されます。

このトピックはいかがですか?