Yayımlayıcı hizmet iletişim örnekleri
Microsoft Entra Doğrulanmış Kimlik hizmeti, kuruluşunuzun OpenID uyumlu kimlik sağlayıcısı tarafından oluşturulan bir kimlik belirtecinden talepler alarak doğrulanabilir kimlik bilgileri verebilir. Bu makalede, Authenticator'ın kimlik sağlayıcınızla iletişim kurabilmesi ve çıkaran hizmete iletmek için doğru Kimlik Belirtecini alabilmesi amacıyla kimlik sağlayıcınızın nasıl ayarlanacağı anlatılır.
Doğrulanabilir Kimlik Bilgileri vermek için Authenticator'a sözleşmeyi indirerek kullanıcıdan giriş toplaması ve bu bilgileri veren hizmete göndermesi istenir. Kimlik Belirteci kullanmanız gerekiyorsa Kimlik Doğrulayıcı'nın OpenID Connect protokolunu kullanarak bir kullanıcıda oturum açmasına izin vermek için kimlik sağlayıcınızı ayarlamanız gerekir. Elde edilen kimlik belirtecindeki talepler, doğrulanabilir kimlik bilgilerinizin içeriğini doldurmak için kullanılır. Authenticator, OpenID Connect yetkilendirme kodu akışını kullanarak kullanıcının kimliğini doğrular. OpenID sağlayıcınız aşağıdaki OpenID Connect özelliklerini desteklemelidir:
Özellik | Açıklama |
---|---|
Verme türü | Yetkilendirme kodu verme türünü desteklemelidir. |
Belirteç biçimi | Şifrelenmemiş sıkıştırılmış JWT'ler üretmelidir. |
İmza algoritması | RS 256 kullanılarak imzalanan JWT'ler üretilmelidir. |
Yapılandırma belgesi | OpenID Connect yapılandırma belgesini ve jwks_uri desteklemelidir. |
Müşteri kaydı | Genel istemci kaydını vcclient://openid/ redirect_uri değeri kullanarak desteklemek gereklidir. |
PKCE | Güvenlik nedeniyle önerilir, ancak gerekli değildir. |
Kimlik sağlayıcınıza gönderilen HTTP isteği örnekleri aşağıda verilmiştir. Kimlik sağlayıcınız bu istekleri OpenID Connect kimlik doğrulama standardına uygun olarak kabul etmeli ve yanıtlamalıdır.
Müşteri kaydı
Doğrulanabilir bir kimlik bilgisi almak için kullanıcılarınızın Microsoft Authenticator uygulamasından IDP'nizde oturum açması gerekir.
Bu değişimi etkinleştirmek için bir uygulamayı kimlik sağlayıcınıza kaydedin. Microsoft Entra Id kullanıyorsanız yönergeleri buradabulabilirsiniz. Kaydederken aşağıdaki değerleri kullanın.
Ayar | Değer |
---|---|
Uygulama adı | <Issuer Name> Verifiable Credential Service |
Yeniden yönlendirme URI'si | vcclient://openid/ |
Bir uygulamayı kimlik sağlayıcınıza kaydettikten sonra istemci kimliğini kaydedin. Bunu aşağıdaki bölümde kullanacaksınız. Ayrıca, OIDC uyumlu kimlik sağlayıcısı için iyi bilinen uç noktanın URL'sini de yazmanız gerekir. Kimlik Belirleme Hizmeti, Authenticator tarafından gönderildikten sonra kimlik belirtecini doğrulamak için gereken ortak anahtarları indirmek amacıyla bu API uç noktasını kullanır.
Yapılandırılan yeniden yönlendirme URI'si Authenticator tarafından kullanılır, böylece oturum açma işleminin ne zaman tamamlandığını bilir ve kimlik belirtecini alabilir.
Yetkilendirme isteği
Kimlik sağlayıcınıza gönderilen yetkilendirme isteği aşağıdaki biçimi kullanır.
GET /authorize?client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&response_mode=query&response_type=code&scope=openid&state=12345&nonce=12345 HTTP/1.1
Host: www.contoso.com
Connection: Keep-Alive
Parametre | Değer |
---|---|
client_id |
Uygulama kayıt işlemi sırasında alınan istemci kimliği. |
redirect_uri |
vcclient://openid/ kullanmalıdır. |
response_mode |
query desteklenmelidir. |
response_type |
code desteklemelidir. |
scope |
openid desteklemelidir. |
state |
OpenID Connect standardına göre istemciye döndürülmelidir. |
nonce |
OpenID Connect standardına göre kimlik belirtecinde talep olarak döndürülmelidir. |
Kimlik sağlayıcınız bir yetkilendirme isteği aldığında kullanıcının kimliğini doğrulamalı ve çok faktörlü kimlik doğrulaması gibi oturum açma işlemini tamamlamak için gerekli tüm adımları atmalıdır.
Oturum açma işlemini gereksinimlerinizi karşılayacak şekilde özelleştirebilirsiniz. Kullanıcılardan ek bilgi sağlamalarını, hizmet koşullarını kabul etmelerini, kimlik bilgilerini ödemelerini ve daha fazlasını isteyebilirsiniz. Tüm adımlar tamamlandıktan sonra, aşağıda gösterildiği gibi yeniden yönlendirme URI'sine yönlendirerek yetkilendirme isteğine yanıt verin.
vcclient://openid/?code=nbafhjbh1ub1yhbj1h4jr1&state=12345
Parametre | Değer |
---|---|
code |
Kimlik sağlayıcınız tarafından döndürülen yetkilendirme kodu. |
state |
OpenID Connect standardına göre istemciye döndürülmelidir. |
Jeton isteği
Kimlik sağlayıcınıza gönderilen belirteç isteği aşağıdaki forma sahiptir.
POST /token HTTP/1.1
Host: www.contoso.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 291
client_id=<client-id>&redirect_uri=vcclient%3A%2F%2Fopenid%2F&grant_type=authorization_code&code=nbafhjbh1ub1yhbj1h4jr1&scope=openid
Parametre | Değer |
---|---|
client_id |
Uygulama kayıt işlemi sırasında alınan istemci kimliği. |
redirect_uri |
vcclient://openid/ kullanmalıdır. |
scope |
openid desteklemeli. |
grant_type |
authorization_code desteklemelidir. |
code |
Kimlik sağlayıcınız tarafından döndürülen yetkilendirme kodu. |
Kimlik sağlayıcınız belirteç isteğini aldığında bir kimlik belirteci ile yanıt verir.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"id_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFlOWdkazcifQ.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg"
}
Kimlik belirteci JWT sıkıştırma serileştirme biçimini kullanmalıdır ve şifrelenmemelidir. Kimlik belirteci aşağıdaki talepleri içermelidir.
İddia | Değer |
---|---|
kid |
Kimlik belirtecini imzalamak için kullanılan anahtarın, OpenID sağlayıcısının jwks_uri girişine karşılık gelen anahtar tanımlayıcısı. |
aud |
Uygulama kayıt işlemi sırasında alınan istemci kimliği. |
iss |
OpenID Connect yapılandırma belgenizdeki issuer değeri olmalıdır. |
exp |
Kimlik belirtecinin süre sonu zamanını içermelidir. |
iat |
Kimlik belirtecinin verildiği zamanı içermelidir. |
nonce |
Yetkilendirme isteğine dahil edilen değer. |
Ek talepler | Kimlik belirteci, değerleri verilecek Doğrulanabilir Kimlik Bilgisi'ne dahil edilecek diğer iddiaları içermelidir. Bu bölüm, kullanıcı hakkında adı gibi tüm öznitelikleri eklemeniz gereken yerdir. |