操作シナリオ
Tencent CloudはSAML 2.0(セキュリティアサーションマークアップ言語2.0)に基づいたフェデレーション認証をサポートしています。SAML 2.0は多くの身分プロバイダ(Identity Provider, IdP)が使用するオープン標準です。SAML 2.0フェデレーション認証に基づいて身分プロバイダとTencent Cloudを統合することで、身分プロバイダユーザーの自動ログイン(シングルサインオン)によりTencent CloudコンソールからTencent Cloudのリソースを管理でき、企業または組織の各メンバーごとにCloud Access Management (CAM)サブユーザーを作成する必要がありません。
操作手順
この手順で、身分プロバイダの担い手として1つまたは複数のロールを作成し、Tencent Cloudコンソールにログインできます。権限を付与した後は、権限の範囲内でTencent Cloudコンソールを通じてメインアカウント下のリソースを管理できます。
1. ブラウザで身分プロバイダのポータルサイトにアクセスし、Tencent Cloud管理コンソールへのリダイレクトを選択します。
2. ポータルサイトは現在のユーザーの身元を認証できます。
3. 認証が成功すると、当該ポータルサイトはSAML 2.0認証レスポンスを生成します。これにはユーザー身元を識別するアサーションおよびユーザーの関連属性が含まれます。ポータルサイトはこのレスポンスをクライアントブラウザに送信します。
4. クライアントブラウザはTencent Cloudのシングルサインオンエンドポイントにリダイレクトされ、SAMLアサーションを送信します。
5. エンドポイントはユーザーに代わって一時的なセキュリティ認証情報をリクエストし、これらの認証情報を使用したコンソールログインURLを作成します。
6. Tencent CloudはログインURLをリダイレクトとしてクライアントに返送します。
7. クライアントブラウザはTencent Cloud管理コンソールにリダイレクトされます。SAML 2.0認証レスポンスに複数のCAMロールにマップされた属性が含まれている場合、システムはまずユーザーにコンソールにアクセスするために使用するロールを選択するよう促します。
ユーザーの視点から見ると、プロセス全体は透過的に進行します:ユーザーは御社の企業組織内ポータルサイトで操作を開始し、Tencent Cloud管理コンソールで操作を終了します。Tencent Cloudの認証情報を提供する必要はありません。この動作を設定する方法の概要および詳細手順へのリンクについては、以下のセクションを参照してください。
企業組織におけるSAML 2.0に基づく身分プロバイダの設定
御社の企業組織内で、Azure Active DirectoryなどのIDストアを設定し、SAML 2.0ベースの身分プロバイダ(Azure Active Directory、OneLogin、Oktaなど)を使用します。身分プロバイダを使用することで、メタデータドキュメントを生成できます。このドキュメントは、御社の企業組織を認証キーを含む身分プロバイダとして記述します。また、御社の企業組織のポータルサイトを、Tencent Cloud管理コンソールへのアクセスを求めるユーザーリクエストをTencent Cloudのエンドポイントにルーティングするように設定します。これにより、SAML 2.0アサーションを使用した認証が行われます。metadata.xmlファイルを生成するための身分プロバイダの設定方法は、使用する身分プロバイダによって異なります。手順については、お使いのIdPのドキュメントをご参照いただくか、以下のドキュメントをご覧ください。
CAMでSAML身分プロバイダを作成
CAMコンソールでSAML 2.0身分プロバイダを作成できます。これはCAMにおけるエンティティであり、外部の信頼されたアカウントの集合体と見なすことができます。SAML 2.0フェデレーテッドアイデンティティ認証に基づく身分プロバイダは、SAML 2.0(セキュリティアサーションマークアップ言語2.0)標準をサポートする身分プロバイダサービスを説明します。作成プロセスでは、企業組織内でのSAML 2.0ベースの身分プロバイダ設定における身分プロバイダのメタデータドキュメントをアップロードできます。詳細については、身分プロバイダの作成を参照してください。 Tencent CloudにおけるSAMLプロバイダユーザーの権限設定
ロールを作成することで、御社の企業組織内の身分プロバイダとTencent Cloud間の相互信頼関係を確立できます。SAML 2.0アサーションのコンテキストでは、ロールは身分プロバイダによって認証されたフェデレーテッドユーザーに割り当てることができます。このロールにより、身分プロバイダはTencent Cloudリソースへのアクセスに必要な一時セキュリティ証明書をリクエストできます。このプロセスにおいて、当該ロールにポリシーを関連付け、ロールの使用条件を設定することで、フェデレーテッドユーザーがTencent Cloudリソースにアクセスできる範囲と使用条件を決定できます。詳細については、身分プロバイダ向けロールの作成を参照してください。 身分プロバイダのシングルサインオン設定
Tencent CloudフェデレーションメタデータXMLドキュメントをダウンロードして保存します:http://cloud.tencent.com/saml.xml。御社の企業組織内の身分プロバイダ属性をTencent Cloudの属性にマッピングし、御社の企業組織内の身分プロバイダとTencent Cloud間の相互信頼関係を確立します。このファイルのインストール方法は、お使いの身分プロバイダによって異なります。一部のプロバイダでは、このURLを入力するオプションが提供されており、その場合、身分プロバイダがファイルを取得してインストールします。他のプロバイダでは、URLからファイルをダウンロードし、ローカルファイルとして提供する必要があります。手順については、お使いのIdPのドキュメントをご参照いただくか、以下のドキュメントをご覧ください。
SAMLレスポンスサンプル
SAMLのサンプルは以下の通りです:
<samlp:Response>
<saml:Issuer>...</saml:Issuer>
<ds:Signature>
...
</ds:Signature>
<samlp:Status>
...
</samlp:Status>
<saml:Assertion>
<saml:Issuer>...</saml:Issuer>
<saml:Subject>
<saml:NameID>${NameID}</saml:NameID>
<saml:SubjectConfirmation>
...
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions>
<saml:AudienceRestriction>
<saml:Audience>${Audience}</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement>
...
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="https://cloud.tencent.com/SAML/Attributes/RoleSessionName">
...
</saml:Attribute>
<saml:Attribute Name="https://cloud.tencent.com/SAML/Attributes/Role">
...
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
SAMLアサーションのAttributeStatement要素内には、Tencent Cloudが要求する以下のAttribute要素が含まれている必要があります:
1. Name属性値が https://cloud.tencent.com/SAML/Attributes/Role のAttribute要素は必須であり、複数存在できます。これに含まれるAttributeValue要素の値は、現在のユーザーが引き受け可能なロールを表し、値の形式はロール記述と身分プロバイダ記述を組み合わせたもので、中間は英語のカンマ(,)で区切られています。
説明:
複数存在する場合、コンソールでログインすると、画面上にすべてのロールが表示され、ユーザーが選択できるようになります。
以下はRole Attribute要素の例です:
<Attribute Name="https://cloud.tencent.com/SAML/Attributes/Role">
<AttributeValue>qcs::cam::uin/{AccountID}:roleName/{RoleName1},qcs::cam::uin/{AccountID}:saml-provider/{ProviderName1}</AttributeValue>
<AttributeValue>qcs::cam::uin/{AccountID}:roleName/{RoleName2},qcs::cam::uin/{AccountID}:saml-provider/{ProviderName2}</AttributeValue>
</Attribute>
同一の身分プロバイダの場合、1項目に結合することも可能です。異なるロールARNの間は英文セミコロン(;)で区切ります。
<Attribute Name="https://cloud.tencent.com/SAML/Attributes/Role">
<AttributeValue>qcs::cam::uin/{AccountID}:roleName/{RoleName1};qcs::cam::uin/{AccountID}:roleName/{RoleName2},qcs::cam::uin/{AccountID}:saml-provider/{ProviderName}</AttributeValue>
</Attribute>
説明:
Roleのソース属性において、{AccountID}、{RoleName}、{ProviderName} をそれぞれ以下の内容に置き換えます:
{ProviderName} をTencent Cloudで作成したSAML身分プロバイダの名称に置き換えてください。名称は身分プロバイダ - コンソールで閲覧できます。 2. Name属性値が https://cloud.tencent.com/SAML/Attributes/RoleSessionName のAttribute要素は必須であり、1つのみ存在できます。この項目はユーザー定義で、長さは32文字以内です。以下はRoleSessionName Attribute要素の例です。この例では、"userName"はカスタム情報に置き換え可能です。
<Attribute Name="https://cloud.tencent.com/SAML/Attributes/RoleSessionName">
<AttributeValue>userName</AttributeValue>
</Attribute>