Alibaba Cloud は、Security Assertion Markup Language (SAML) 2.0 および OpenID Connect (OIDC) をベースとしたシングルサインオン (SSO) をサポートしています。この機能は、ID フェデレーションとも呼ばれます。本トピックでは、SSO に関連する用語を紹介し、企業の ID 管理システムと Alibaba Cloud 間で SSO を実装する方法について説明します。
利用規約
用語 | 説明 |
ID プロバイダー (IdP) | RAM エンティティであり、ID 管理サービスを提供します。IdP は以下のタイプに分類されます。
|
サービスプロバイダー (SP) | IdP の ID 管理機能を利用してユーザーに特定のサービスを提供するアプリケーションです。SP は、IdP が提供するユーザー情報を使用します。SAML プロトコルを基盤としない特定の ID システム(例:OIDC)では、SP は IdP の依拠当事者と呼ばれます。 |
Security Assertion Markup Language 2.0 (SAML 2.0) | エンタープライズレベルのユーザー身分認証を目的として設計されたプロトコルです。SAML 2.0 は SP と IdP 間の通信に使用され、エンタープライズにおける SSO 実装の標準となっています。 |
SAML アサーション | SAML プロトコルで定義されるコア要素です。この要素は、認証リクエストおよび応答を記述します。たとえば、認証応答の SAML アサーションにはユーザー属性が含まれることがあります。 |
信頼 | SP と IdP の間で構築される相互の信頼関係です。ほとんどの場合、この信頼関係は公開鍵と秘密鍵を用いて確立されます。SP は、信頼済み IdP の SAML メタデータを取得できます。このメタデータには公開鍵が含まれており、SP はその公開鍵を用いて IdP が発行した SAML アサーションの完全性を検証します。 |
OIDC | Open Authorization (OAuth) 2.0 を基盤として開発された認証プロトコルです。詳細については、「OIDC」および「OAuth 2.0」をご参照ください。OAuth は権限付与プロトコルであり、OIDC は OAuth に ID レイヤーを追加することで拡張されています。これにより、OIDC は OAuth を用いた権限付与が可能になります。また、OIDC ではクライアントがユーザーの ID を検証し、HTTP RESTful API を用いてユーザーの基本情報を取得できます。 |
OIDC トークン | OIDC がアプリケーションに対して発行する ID トークンです。ログイン中のユーザーを示す ID トークンであり、ログイン中のユーザーの基本情報を取得するために使用できます。 |
クライアント ID | 外部 IdP でアプリケーションを登録した際に生成される ID です。外部 IdP から OIDC トークンを取得する際には、クライアント ID を指定する必要があります。このクライアント ID は、発行された OIDC トークンの |
指紋 | 外部 IdP の HTTPS 証明書に基づいて生成される指紋です。指紋を用いることで、発行元の URL がハイジャックまたは改ざんされるのを防止できます。Alibaba Cloud が指紋を計算しますが、お客様の端末で指紋を計算することを推奨します。たとえば、OpenSSL を用いて OIDC IdP の指紋を取得できます。詳細については、「OpenSSL を用いた OIDC IdP の指紋の取得方法」をご参照ください。その後、お客様が計算した結果と Alibaba Cloud が提供する結果を比較してください。OpenSSL の詳細については、公式サイト「OpenSSL」をご参照ください。計算結果が異なる場合は、発行元の URL が攻撃を受けている可能性があります。有効な指紋を正しく入力してください。 |
発行元の URL | 外部 IdP が提供する発行元の URL です。この URL は OIDC トークン内の |
STS トークン | Alibaba Cloud Security Token Service (STS) が提供する一時的な ID 認証情報です。STS を使用すると、Alibaba Cloud リソースに対する一時的な認証情報を管理できます。STS トークンには有効期間を設定したり、アクセス権限を指定したりできます。STS の詳細については、「STS とは?」をご参照ください。 |
SSO の実装方法
Alibaba Cloud では、以下の SSO 実装方法を提供しています。
ユーザーベース SSO
Alibaba Cloud 管理コンソールへのログインに使用できる RAM ユーザーの ID は、SAML アサーションに基づいて決定されます。Alibaba Cloud 管理コンソールにログイン後、RAM ユーザーとして Alibaba Cloud リソースにアクセスできます。詳細については、「ユーザーベース SSO の概要」をご参照ください。
ロールベース SSO
Alibaba Cloud は、SAML 2.0 をベースとした SSO および OIDC をベースとした SSO をサポートしています。
SAML 2.0 をベースとした SSO:Alibaba Cloud 管理コンソールへのログインに使用できる RAM ロールは、SAML アサーションに基づいて決定されます。Alibaba Cloud 管理コンソールにログイン後、SAML アサーションで指定された RAM ロールを使用して Alibaba Cloud リソースにアクセスできます。詳細については、「概要」をご参照ください。
OIDC をベースとした SSO:IdP が発行した OIDC トークンを用いて Alibaba Cloud の操作を呼び出し、特定の RAM ロールを偽装し、OIDC トークンを用いて STS トークンを取得できます。その後、取得した STS トークンを用いて Alibaba Cloud リソースにアクセスできます。詳細については、「OIDC をベースとしたロールベース SSO の概要」をご参照ください。
ロールベース SSO とユーザーベース SSO の比較
SSO 方法 | SP 発信型 SSO | IdP 発信型 SSO | RAM ユーザーのログイン名およびパスワードによるログイン | 単一 IdP との複数 Alibaba Cloud アカウントの連携 | 複数 IdP の利用 |
ユーザーベース SSO | 対応 | 対応 | 非対応 | 非対応 | 非対応 |
ロールベース SSO | 非対応 | 対応 | 対応 | 対応 | 対応 |
両 SSO 方法の違いについては、「SSO のユースケース」をご参照ください。