エクスポート (0) 印刷
すべて展開

ACS でサポートされるトークン形式

発行: 2011年4月

更新日: 2015年3月

適用対象: Azure

Web アプリケーションとサービスが Microsoft Azure Active Directory アクセス制御 (アクセス制御サービスまたは ACS) での認証を処理する場合、クライアントは ACS によって発行されるセキュリティ トークンを取得して、アプリケーションまたはサービスにログインする必要があります。ACS は以下の形式でセキュリティ トークンを発行できます。

noteメモ
ACS は以下のいずれかの形式でセキュリティ トークンを発行することができます。ACS が Web アプリケーションまたはサービスに対して使用するトークン形式は、証明書利用者アプリケーションの構成によって決まります。証明書利用者アプリケーションの構成の詳細については、「証明書利用者アプリケーション」を参照してください。

Security Assertion Markup Language (SAML) は、シングル サインオン (SSO) と要求ベース ID で今日使用されている最も古く、最も一般的なトークン形式です。SAML は、SAML トークンを使用して Web アプリケーションまたは Web サービス SSO を実行するための、プロトコルおよびトークンの XML 形式を指定します。SAML トークンの詳細については、「SAML 仕様」 (http://go.microsoft.com/fwlink/?LinkID=213719) を参照してください。

noteメモ
SAML 1.1 および SAML 2.0 トークンは、「Windows Identity Foundation」 (http://go.microsoft.com/fwlink/?LinkID=213729) を含む、多くの開発プラットフォームによって広くサポートされています。

SAML トークンの例を以下に示します。

<assertion id="_4fe09cda-cad9-49dd-b493-93494e1ae4f9" issueinstant="2012-09-18T20:42:11.626Z"
    version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<issuer>https://test05.accesscontrol.windows.net/</issuer>
<ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:signedinfo>
        <ds:canonicalizationmethod algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        <ds:signaturemethod algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
        <ds:reference uri="#_4fe09cda-cad9-49dd-b493-93494e1ae4f9">
            <ds:transforms>
                <ds:transform algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                <ds:transform algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            </ds:transforms>
            <ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
            <ds:digestvalue>8qmfRKuATFuo4M96xuci7HCLUGUeO3eBxHOi9/HaFNU=</ds:digestvalue>
        </ds:reference>
    </ds:signedinfo>
<ds:signaturevalue>UWcXJElfrP8hfdNi8ipzSjfxCYGYzoylkn5HdSa8IhphvyZBvbZl1OFEbMSygoo8xNgnywUNPuzZP8nV7CwZNuSWVZZSrF2pHAswBKQoJoodpzrGRR0ruT+A2sjXfnLQqN+X/xanXqqg4ViUOR9xHvn8vzaRwYxPPsjI4OXq0hzLlyuBzhw42XHzZk1qknQr1wp/lZTMwrFnY38gziUZ+Ci1Duen5Xt9k+0ZFujtSBqJKIran1V263o8CkvoahNcNKT//OcXc3va7zeJf67V9/lwY34MkFoqqfeuTSzEuZfk7pYRNqwhOZGhokpR+1qHjEbJr3p6dOOPkuQp9p6zsQ==</ds:signaturevalue>
    <keyinfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>       <X509Certificate>MIIDCDCCAfCgAwIBAgIQRmI8p7P/aphMv5Kr9vQpqTANBgkqhkiG9w0BAQUFADAtMSswKQYDVQQDEyJBQVJPTkJPT0subnRkZXYuY29ycC5taWNyb3NvZnQuY29tMB4XDTEyMDUyMTIzMjMxMFoXDTEzMDUyMTAwMDAwMFowLTErMCkGA1UEAxMiQUFST05CT09LLm50ZGV2LmNvcnAubWljcm9zb2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI79l6EOSWswJn3d9i4yfZh9Cwo2XNhb4tOWvmljCKFlrWoz/Drch5aOzdmI/yFaqkyX7BXc/zoSmX1n3VkqHIeJkGECcZX2bD4jPuICVmKBcXo0SeQ+2vF6DoqjVKaegWrPsqmDrlCscnlMLb11Fg1Ffqkm8wyyWwbQvC5VnVf0i9DPE0n+i3NJi9cT57obrNRkQzwfBZy08I2JlpxLfaUUDhHlF99C1MtBduzn3au+S20gom1cHAcSvHBormXbjPZ5F6RJUz7kO/U+M5rYkiS+vtANtnBlUAK8fRmEUrYFRMr1tyiOXcRid/7UJP3e0EmAsneMnuD9WO/mK6MuzIECAwEAAaMkMCIwCwYDVR0PBAQDAgQwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4IBAQBCRM9maY5ZE+wIxefxjT0IAqp7H6l062PKOGdld5MapOJUWbng2CrfUV3YI5OSD9yhevgDne3jf2DUBv5QndHdms+FL260ydDmwet4A5kJi3ZBO4sR/PZTz3FdeeOwdTeUS2wAMJuphAZ1+PUVk25bbEu/DKmgeYzRn64CHWqk5sPKzH9jAszvX2EeoClI+8Sp/bXHTwzEUOFYcicPOO+tuFTqHOYBDT5bE42rAp/SaC1wXbmTCGS12gfCZCrlml6LZNTsKQWBF2szXOPGcFcInGkauZDUUtZd+921uy0E/sYwgNfi8phU1aGZjIESVFQ70LpfvIMwF6++BRX12icW</X509Certificate>
        </X509Data>
    </keyinfo>
</ds:signature>
<subject>
    <NameID>abc1def2ghi3jkl4mno5pqr6stu7vwx8yza9bcd0efg=</NameID>
    <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer" />
</subject>
    <conditions notbefore="2012-09-18T20:42:11.610Z" notonorafter="2012-09-18T21:42:11.610Z">
        <AudienceRestriction>
            <Audience>http://localhost:63000/</Audience>
        </AudienceRestriction>
    </conditions>
    <attributestatement>
        <Attribute Name="http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider">
            <AttributeValue>uri:WindowsLiveID</AttributeValue>
        </Attribute>
    </attributestatement>
</assertion>

Simple Web Token (SWT) トークンは SimpleWebToken 仕様に準拠しています。SWT トークンは、暗号化キーで署名されているフォーム エンコードされたキー/値のペアとして表されます。仕様では一部のキー/値のペアの存在を義務付けていますが、アプリケーション固有のキー/値のペア用の領域は確保されます。ACS 発行の SWT トークンに常に存在するキーを以下の表に示します。

 

キー 説明

Issuer

トークンを発行した ACS サービスの名前空間 の表現。この値のパターンは https://<servicenamespace>.accesscontrol.windows.net/ です。

対象ユーザー

トークンの要求に使用される applies_to の値。この値は HTTP または HTTPS URI のいずれかです。

ExpiresOn

トークンの有効期限が切れるエポック時間。

HMACSHA256

他のすべてのキー/値のペアの HMACSHA256 署名。このキー/値のペアは常にトークンにおける最後のキー/値のペアです。他のキー/値のペアのフォーム エンコードされた表現は署名されます。

これらのキー/値のペアに加え、ACS は発行前に 1 つ以上の要求をトークンに追加します。これらの要求は、トークンの要求時に ACS に存在するルール構成によって決まります。このような要求のすべてに種類と 1 つ以上の値があります。種類と値の両方が文字列です。要求に複数の値が含まれている場合、それらの値はコンマ (「,」) 文字で区切られます。要求は、上記の表に示されているキー/値のペアのとおり正確に、キー/値のペアとしてエンコードされます。

キー/値のペアとして表される要求を含む ACS トークンの例を以下に示します。

Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255913549Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&role=Admin%2cUser&role=Admin%2cUser&&HMACSHA256=sT7Hr9z%2b3t1oDFLpq5GOToVsu6Dyxpq7hHsSAznmwnI%3d

HMACSHA256 キー/値のペアを除き、これらのペアは任意の順序で指定することができます。以下の ACS トークンは、署名が異なる点以外は、上記の ACS トークンと同等です。

role=Admin%2cUser&customerName=Contoso%20Corporation&Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255912922&HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

次の表では、URL デコードされた値を持つトークンの内容を示します。

 

Source キー URL エンコードされた値 URL デコードされた値

ユーザー定義の要求

ロール

Admin%2cUser

Admin,User

customerName

Contoso%20Corporation

Contoso Corporation

システム定義の要求

Issuer

https%3a%2f%2fmyservice.accesscontrol.windows.net%2f

https://mynamespace.accesscontrol.windows.net/

対象ユーザー

http%3a%2f%2flocalhost%2fmyservice

http://localhost/myservice

ExpiresOn

1255912922

1255912922

HMACSHA256

yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

yuVO/wc58/tYP36/DM1mS/Hr0hswpsGTWwgfvAbpL64=

JSON Web Token (JWT) サポートはベータ版で追加されています。これは、予告なしで重大な変更が生じる可能性があることを意味します。

JWT トークン形式の ACS 実装は JWT 仕様のドラフト 9 に準拠しています。詳細については、「http://go.microsoft.com/fwlink/?LinkID=253666」を参照してください。SWT トークンに似ていますが、JWT は REST Web サービスに適したコンパクトなトークン形式です。SWT 形式とは異なり、JWT ではさまざまな署名オプションがサポートされます。ACS は JWT トークンの対称署名と非対称署名の両方をサポートします。ACS 発行の JWT トークンに常に存在する要求を以下の表に示します。

 

要求 JWT を使用する要求の種類 説明

Issuer

iss

トークンを発行した アクセス制御名前空間 の表現。この値のパターンは https://<namespace>.accesscontrol.windows.net/ です。

対象ユーザー

aud

トークンの要求に使用されるスコープの値。この値はトークンの対象の受信者を特定するために使用されます。

Not Before

nbf

トークンが有効になるエポック時間。

有効期限

exp

トークンの有効期限が切れるエポック時間。

JWT トークンでは以下のアルゴリズムがサポートされます。

 

JWT ヘッダーのアルゴリズム ID 説明

HS256

SHA-256 ハッシュ アルゴリズムを使用する HMAC。対称キーを使用して JWT に署名する場合。

RS256

SHA-256 ハッシュ アルゴリズムを使用する RSA。証明書で x509 を使用し、非対称キーで JWT に署名する場合。

JWT トークンの例を以下に示します。

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczovL2NvbnRvc28uY29tL3JlbHlpbmdwYXJ0eSIsImlzcyI6Imh0dHBzOi8vY29udG9zby5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0LyIsIm5iZiI6MTMzNjA2NzMzOCwiZXhwIjoxMzM2MDcwOTM4LCJuYW1laWQiOiJjbGllbnRBcHAiLCJpZGVudGl0eXByb3ZpZGVyIjoiY29udG9zby5jb20ifQ._3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw. 

JWT は「.」を使用して区切られたセグメントで構成されます。次の表では、JWT トークンのデコードされたセグメントを示します。

 

JWT セグメント

JWT ヘッダー

{"typ":"JWT","alg":"HS256"}

JWT 要求セット

{"aud":"https://contoso.com/relyingparty","iss":"https://contoso.accesscontrol.windows.net/","nbf":1336067338,"exp":1336070938,"nameid":"clientApp","identityprovider":"contoso.com"}

署名

_3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw

複数の値を含む単一の要求は JSON 配列として表されます。たとえば、ユーザーが複数のロールのメンバーである場合、ロール要求は次のように表示されます。

{
 "aud":"https://contoso.com/relyingparty",
"iss":"https://contoso.accesscontrol.windows.net/",
"nbf":1336067338,"exp":1336070938,
"nameid":"frankm",
"identityprovider":"contoso.com",
“role”: [ “admin”, “user” ]
}

SAML 2.0、SAML 1.1、SWT、JWT トークンが発行されると、ACS はさまざまな標準プロトコルを使用して、トークンを Web アプリケーションまたはサービスに返します。ACS では以下のトークン形式/プロトコルの組み合わせがサポートされます。

  • ACS は、WS-Trust プロトコルと WS-Federation プロトコルで (トークン要求で使用されるプロトコルに応じて) SAML 2.0 トークンを発行したり、返すことができます。

  • ACS は、WS-Federation プロトコルと関連する WS-Trust プロトコルで (トークン要求で使用されるプロトコルに応じて) SAML 1.1 トークンを発行したり、返すことができます。

  • ACS は、WS-Federation、WS-Trust、および OAuth WRAP または OAuth 2.0 プロトコルで (トークン要求で使用されるプロトコルに応じて) SWT トークンを発行したり、返すことができます。

  • ACS は、WS-Federation、WS-Trust、および OAuth 2.0 プロトコルで (トークン要求で使用されるプロトコルに応じて) JWT トークンを発行することができます。

関連項目

コミュニティの追加

追加
表示:
© 2015 Microsoft