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 |
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.