SAML 2.0 プロトコルを使用して、Active Directory フェデレーション サービス (AD FS) と CloudSSO の間でシングルサインオン (SSO) を設定します。
背景
ある企業は、オンプレミスのユーザー管理に Active Directory (AD) を使用しており、Alibaba Cloud Resource Directory でマルチアカウント構造を持っています。AD ユーザーは、特定のメンバーアカウント内の指定されたリソースへの SSO アクセスが必要です。
この例では、Windows Server 2012 R2 の ECS インスタンス上の AD FS を使用します。AD FS は ID プロバイダー (IdP) として機能し、 CloudSSO はサービスプロバイダー (SP) として機能します。
このトピックに記載されている AD および AD FS の設定は、ガイダンスのみを目的としています。Alibaba Cloud は、AD または AD FS に関するコンサルティングサービスを提供していません。
前提条件
SSO を設定する前に、以下のタスクを完了してください。
-
Windows Server 2012 R2 の ECS インスタンスに以下のサービスをデプロイします。
-
Active Directory ドメイン サービス (AD DS):ユーザーやデバイスなどのドメインオブジェクトを管理します。
-
Active Directory フェデレーション サービス (AD FS):SSO 証明書利用者の設定と認証を処理します。
-
-
CloudSSO でユーザーを作成し、権限を設定します。
-
CloudSSO に、 AD FS の SSO フィールドと一致するユーザー名でユーザーを作成します。
詳細については、「ユーザーの作成」をご参照ください。
説明CloudSSO のユーザー名は、 AD FS の SSO フィールドと一致する必要があります。詳細については、「ステップ 3: AD FS で SAML アサーション属性を設定する」をご参照ください。
-
権限ポリシーを定義するアクセス設定を作成します。
詳細については、「権限セットの作成」をご参照ください。
-
リソースディレクトリアカウントにアクセス権限を割り当てます。
詳細については、「メンバーアカウントへのアクセス権限の割り当て」をご参照ください。
-
ステップ 1: CloudSSO から SP メタデータを取得する
-
CloudSSO コンソールにログインします。
-
左側のナビゲーションウィンドウで、[設定] をクリックします。
-
[SSO ログイン] セクションで、サービスプロバイダ (SP) のメタデータドキュメントをダウンロードします。
ステップ 2: AD FS に Alibaba Cloud を証明書利用者として追加する
-
AD FS がデプロイされている ECS インスタンスにログインします。
-
[サーバー マネージャー] を開きます。
-
左側のナビゲーションペインで、[AD FS] をクリックします。
-
右上のメニューバーで、 を選択します。
-
[AD FS] 管理コンソールで、Alibaba Cloud を証明書利用者信頼として追加します。
-
左側のナビゲーションペインで、[証明書利用者信頼] を右クリックし、[証明書利用者信頼の追加] をクリックします。
-
[証明書利用者信頼の追加ウィザード] で、[要求に対応] を選択し、[開始] をクリックします。
-
[ファイルから証明書利用者に関するデータをインポート] を選択し、[参照] をクリックして ステップ 1: CloudSSO から SP メタデータを取得 で取得した SP メタデータファイルをインポートし、次に [次へ] をクリックします。
-
リライングパーティの表示名を入力して、[次へ] をクリックします。
この例では、 CloudSSODemo を使用します。
-
アクセス制御ポリシーを選択して、[次へ] をクリックします。
この例では[全員を許可]を使用します。
-
設定を確認し、[次へ] をクリックします。
-
[閉じる] をクリックします。
-
ステップ 3: AD FS で SAML アサーション属性を設定する
この例では、SAML アサーションの NameID フィールドは AD ユーザーの User Principal Name (UPN) に設定され、CloudSSO はこれを使用してユーザーを識別します。
-
CloudSSODemo リライングパーティを右クリックし、[要求発行ポリシーの編集] をクリックします。
-
[ルールを追加] をクリックします。
説明発行変換規則は、ユーザー属性を SAML アサーション属性に対応付けます。AD FS ユーザーの UPN を
NameIDとして発行する規則を追加します。 -
[変換要求規則の追加ウィザード] で、[要求規則のテンプレート] を [入力方向の要求を変換] に設定し、[次へ] をクリックします。
-
要求情報を設定します。
-
カスタム要求規則名を入力します。
この例では
UPN2NameIDを使用します。 -
[受信要求の種類] ドロップダウンリストで、[UPN] を選択します。
-
[送信要求の種類] ドロップダウンリストで、[名前 ID] を選択します。
-
[送信 NameID 形式] ドロップダウンリストで、[Eメール] を選択します。
-
[すべてのクレーム値をパススルー] を選択します。
-
[完了] をクリックします。
-
-
[OK] をクリックします。
ステップ 4: AD FS から IdP メタデータを取得する
AD FS サーバーで、次の URL にアクセスして IdP メタデータファイルをダウンロードします:https://<ADFS-server>/federationmetadata/2007-06/federationmetadata.xml。
<ADFS-server> を AD FS サーバーのドメイン名または IP アドレスに置き換えてください。
ステップ 5: CloudSSO で SSO を有効にする
-
CloudSSO コンソールの左側のナビゲーションペインで、[設定] をクリックします。
-
[SSO ログイン] セクションで、[IdP 情報の設定] をクリックします。
-
[IdP 情報の設定] ダイアログボックスで、[メタデータファイルのアップロード] を選択します。
-
[ファイルをアップロード] をクリックして、ステップ 4: AD FS から IdP メタデータを取得する で取得した IdP メタデータファイルをアップロードします。
説明メタデータファイルがサイズ制限を超えた場合、
<fed:ClaimTypesRequested>と<fed:ClaimTypesOffered>内のすべてのコンテンツを削除してみてください。 -
SSO を有効にします。
説明SSO ログインを有効にすると、ユーザー名とパスワードによるログインが無効になります。つまり、CloudSSO ユーザーはプラットフォームの認証情報でサインインできなくなります。有効にすると、すべてのユーザーは ID プロバイダー経由でサインインする必要があります。
設定の検証
Alibaba Cloud または AD FS のいずれかから SSO を開始できます。
-
Alibaba Cloud から SSO を開始する
-
CloudSSO コンソールの[概要] ページで、ユーザーポータル URL をコピーします。
-
新しいブラウザーウィンドウで URL を開きます。
-
[SSO ログイン] ページにエンタープライズアカウントのログオン URL が表示されます。[リダイレクト] をクリックして AD FS ログオンページに移動します。
-
AD ユーザーのユーザー名とパスワードを入力します。
CloudSSO ユーザーポータルに自動的にサインインされます。
-
[RAM ロールとしてログオン] タブで、対象のリソースディレクトリのアカウントの [権限] 列にある [詳細を表示] をクリックします。
ユーザー Alice が CloudSSO ユーザーポータルにログオンすると、[SharedServices]、[LogArchive]、[dev-test] という 3 つのアクセス可能なクラウドアカウントが表示されます。
-
権限パネルで、対象の権限の [アクション] 列で [ログオン] をクリックします。
-
メンバーアカウント内の承認されたリソースにアクセスします。
-
-
AD FS から SSO を開始する
-
AD FS の SSO ポータルに移動します。
SSO ポータル URL は
https://<ADFS-server>/adfs/ls/IdpInitiatedSignOn.aspxです。説明-
<ADFS-server> を AD FS サーバーのドメイン名または IP アドレスに置き換えてください。
-
SSO ポータルページが利用できない場合は、次の PowerShell コマンドを実行して有効にしてください:
Set-AdfsProperties -EnableIdpInitiatedSignonPage $True。
-
-
ステップ 2: AD FS に Alibaba Cloud を証明書利用者として追加するで作成した CloudSSODemo サイトを選択し、[サインイン] をクリックします。
-
AD ユーザーのユーザー名とパスワードを入力し、[サインイン] をクリックします。
CloudSSO ユーザーポータルに自動的にサインインされます。
-
[RAMロールとしてログオン] タブで、対象のリソースディレクトリのアカウントの [権限] 列の [詳細の表示] をクリックします。
ユーザー Alice が CloudSSO ユーザーポータルにログインすると、[SharedServices]、[LogArchive]、および [dev-test] という 3 つのアクセス可能なクラウドアカウントが表示されます。
-
権限パネルで、対象の権限の [操作] 列にある [ログオン] をクリックします。
-
メンバーアカウント内の承認されたリソースにアクセスします。
-