Aracılığıyla paylaş


ACS'de Desteklenen Belirteç Biçimleri

Güncelleştirme: 19 Haziran 2015

Şunlar için geçerlidir: Azure

Web uygulamalarınız ve hizmetleriniz Microsoft Azure Active Directory Access Control (Access Control Hizmeti veya ACS olarak da bilinir) ile kimlik doğrulamasını işlediğinde, istemcinin uygulamanızda veya hizmetinizde oturum açmak için ACS tarafından verilen bir güvenlik belirteci alması gerekir. ACS aşağıdaki biçimlerde güvenlik belirteçleri verebilir:

  • Güvenlik Onaylama İşaretleme Dili (SAML) 1.1 ve 2.0

  • Basit Web Belirteci (SWT)

  • JSON Web belirteci (JWT)

Not

ACS aşağıdaki biçimlerden herhangi birinde güvenlik belirteçleri verebilir. ACS'nin bir web uygulaması veya hizmeti için kullandığı belirteç biçimi, bağlı olan taraf uygulama yapılandırması tarafından belirlenir. Bağlı olan taraf uygulamalarını yapılandırma hakkında bilgi için bkz . Bağlı Olan Taraf Uygulamaları.

Güvenlik Onaylama İşaretleme Dili (SAML) 1.1 ve 2.0

Güvenlik Onaylama İşaretleme Dili (SAML), çoklu oturum açma (SSO) ve talep tabanlı kimlik için kullanılan en eski ve en yaygın belirteç biçimidir. SAML, saml belirteçleri kullanarak bir web uygulaması veya bir web hizmeti SSO gerçekleştirmek için belirteçler ve protokoller için bir XML biçimi belirtir. SAML belirteçleri hakkında daha fazla bilgi için bkz. SAML Belirtimleri (https://go.microsoft.com/fwlink/?LinkID=213719).

Not

SAML 1.1 ve SAML 2.0 belirteçleri, Windows Identity Foundation (https://go.microsoft.com/fwlink/?LinkID=213729) dahil olmak üzere bir dizi geliştirme platformu tarafından yaygın olarak desteklenir.

Aşağıda SAML belirtecinin bir örneği verilmiştir.

<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>https://localhost:63000/</Audience>
        </AudienceRestriction>
    </conditions>
    <attributestatement>
        <Attribute Name="https://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider">
            <AttributeValue>uri:WindowsLiveID</AttributeValue>
        </Attribute>
    </attributestatement>
</assertion>

Basit Web Belirteci (SWT)

Basit Web Belirteci (SWT) belirteçleri SimpleWebToken belirtimine uygundur. SWT belirteçleri, şifreleme anahtarıyla imzalanmış form kodlamalı anahtar/değer çiftleri olarak ifade edilir. Belirtim bazı anahtar/değer çiftlerinin varlığını zorunlu kılabilir, ancak uygulamaya özgü anahtar/değer çiftleri için yer bırakır. ACS tarafından verilen bir SWT belirtecinde her zaman mevcut olan anahtarlar aşağıdaki tabloda gösterilmiştir.

Anahtar Description

Veren

Belirteci veren ACS hizmeti ad alanının gösterimi. Bu değerin deseni https://< servicenamespace.accesscontrol.windows.net/> şeklindedir.

Hedef kitle

Belirteci istemek için kullanılan değerinin applies_to değeri. Bu değer bir HTTP veya HTTPS URI'sidir.

ExpiresOn

Belirtecin sona erdiği Dönem süresi.

HMACSHA256

Diğer tüm anahtar/değer çiftlerinin HMACSHA256 imzası. Bu anahtar/değer çifti her zaman belirteçteki son anahtar/değer çiftidir. Diğer anahtar/değer çiftlerinin form kodlanmış gösterimi (uygulamaya özgü talepler dahil) imzalanır.

AcS, bu anahtar/değer çiftlerine ek olarak vermeden önce bir veya daha fazla talebi belirtece ekler. Bu talepler, belirteç isteği sırasında ACS'de bulunan kural yapılandırması tarafından yönlendirilir. Bu tür taleplerin tümü bir türe ve bir veya daha fazla değere sahiptir; burada hem tür hem de değerler dizedir. Bir talep birden fazla değer içerdiğinde, değerler virgül (",") karakteriyle ayrılır. Talepler, önceki tabloda açıklanan anahtar/değer çiftleri gibi anahtar/değer çiftleri olarak kodlanır.

Aşağıda anahtar/değer çiftleri olarak temsil edilen talepleri içeren bir ACS belirteci örneği verilmiştir.

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 anahtar/değer çifti dışında, bu çiftler herhangi bir sırada olabilir. Aşağıdaki ACS belirteci, farklı imzalar dışında önceki ACS belirtecine eşdeğerdir.

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

Aşağıdaki tabloda, URL kodu çözülen değerlerle belirtecin içeriği gösterilmektedir.

Kaynak Anahtar URL kodlanmış değeri URL kodu çözülen değer

Kullanıcı Tanımlı Talepler

rol

Yönetici%2cUser

Yönetici,Kullanıcı

Müşteriadı

Contoso%20Corporation

Contoso Corporation

Sistem tanımlı Talepler

Veren

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

https://myservice.accesscontrol.windows.net/

Hedef kitle

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

https://localhost/myservice

ExpiresOn

1255912922

1255912922

HMACSHA256

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

yuVO/wc58/tYP36/DM1mS/Hr0hswpsGTWwgfvAbpL64=

JSON Web belirteci (JWT)

JSON Web belirteci (JWT) desteği beta sürümüne ekleniyor, bu da bildirimde bulunmaksızın hataya neden olan değişiklikler olabileceği anlamına geliyor.

JWT belirteç biçiminin ACS uygulaması, JWT belirtiminin taslak 9'unu izler. Daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?LinkID=253666. SWT belirteçlerine benzer şekilde JWT, REST web hizmetleri için uygun olan kompakt bir belirteç biçimidir. SWT biçiminden farklı olarak, JWT çeşitli imzalama seçeneklerini destekler. ACS, JWT belirteçleri için hem simetrik hem de asimetrik imzaları destekler. ACS tarafından verilen JWT belirteçlerinde her zaman mevcut olan talepler aşağıdaki tabloda gösterilmiştir.

İste Kullanılan talep türü JWT Description

Veren

ıss

Belirteci veren Access Control ad alanının gösterimi. Bu değerin deseni https://< namespace.accesscontrol.windows.net/>

Hedef kitle

aud

Belirteci istemek için kullanılan kapsamın değeri. Bu değer belirtecin hedeflenen alıcısını tanımlamak için kullanılır.

Önce Değil

nbf

Belirtecin geçerli olmadığı dönem süresi.

Bitiş tarihi

Exp

Belirtecin sona erdiği Dönem süresi.

JWT belirteçleri için aşağıdaki algoritmalar desteklenir:

JWT üst bilgisinde algoritma tanımlayıcısı Description

HS256

SHA-256 karma algoritması kullanan HMAC. JWT'i simetrik anahtarla imzalamak için.

RS256

SHA-256 karma algoritması kullanan RSA. Sertifika ile x509 kullanarak JWT'yi asimetrik bir anahtarla imzalamak için.

Aşağıda bir JWT belirteci örneği verilmiştir:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczovL2NvbnRvc28uY29tL3JlbHlpbmdwYXJ0eSIsImlzcyI6Imh0dHBzOi8vY29udG9zby5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0LyIsIm5iZiI6MTMzNjA2NzMzOCwiZXhwIjoxMzM2MDcwOTM4LCJuYW1laWQiOiJjbGllbnRBcHAiLCJpZGVudGl0eXByb3ZpZGVyIjoiY29udG9zby5jb20ifQ._3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw. 

JWT, '.' kullanılarak sınırlandırılmış segmentlerden oluşur. Aşağıdaki tabloda bir JWT belirtecinin kodu çözülen kesimleri gösterilmektedir:

JWT Segmenti Değer

JWT Üst Bilgisi

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

JWT Talep Kümesi

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

İmza

_3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw

Birden çok değer içeren tek bir talep JSON dizisi olarak temsil edilir. Örneğin, bir kullanıcı birden çok rolün üyesiyse rol talebi aşağıdaki gibi görünür:

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

ACS Belirteçleri ve Protokolleri

SAML 2.0, SAML 1.1, SWT, JWT belirteci yayımlandığında ACS, belirteci bir web uygulamasına veya hizmetine döndürmek için çeşitli standart protokoller kullanır. ACS aşağıdaki belirteç biçimi/protokol birleşimlerini destekler:

  • ACS, WS-Trust ve WS-Federation protokolleri üzerinden SAML 2.0 belirteçleri verebilir ve döndürebilir (belirteç isteğinde kullanılan protokole bağlı olarak).

  • ACS, WS-Federation ve ilgili WS-Trust protokolleri üzerinden SAML 1.1 belirteçleri verebilir ve döndürebilir (belirteç isteğinde kullanılan protokole bağlı olarak).

  • ACS, WS-Federation, WS-Trust ve OAuth WRAP veya OAuth 2.0 protokolleri (belirteç isteğinde kullanılan protokole bağlı olarak) üzerinden SWT belirteçleri verebilir ve döndürebilir.

  • ACS, WS-Federation, WS-Trust ve veya OAuth 2.0 protokolleri (belirteç isteğinde kullanılan protokole bağlı olarak) üzerinden JWT belirteçleri verebilir.

Ayrıca Bkz.

Kavramlar

ACS Mimarisi
ACS 2.0 Bileşenleri