Veren hizmet iletişim örnekleri
Microsoft Entra Kimlik Doğrulama hizmeti, kuruluşunuzun OpenID uyumlu kimlik sağlayıcısı tarafından oluşturulan kimlik belirtecinden talepleri alarak doğrulanabilir kimlik bilgileri verebilir. Bu makalede, Authenticator'ın bu sağlayıcıyla iletişim kurabilmesi ve veren hizmete geçirmek için doğru Kimlik Belirtecini alabilmesi için 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 Bağlan protokolunu kullanarak bir kullanıcıda oturum açmasına izin vermek için kimlik sağlayıcınızı ayarlamanız gerekir. Sonuçta elde edilen kimlik belirtecindeki talepler, doğrulanabilir kimlik bilgilerinizin içeriğini doldurmak için kullanılır. Authenticator, OpenID Bağlan yetkilendirme kodu akışını kullanarak kullanıcının kimliğini doğrular. OpenID sağlayıcınız aşağıdaki OpenID Bağlan ö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 Bağlan yapılandırma belgesini ve jwks_uri desteklemelidir. |
İstemci kaydı | değerini kullanarak redirect_uri genel istemci kaydını desteklemelidir vcclient://openid/ . |
PKCE | Güvenlik nedeniyle önerilir, ancak gerekli değildir. |
Kimlik sağlayıcınıza gönderilen HTTP isteklerinin örnekleri aşağıda verilmiştir. Kimlik sağlayıcınızın bu istekleri OpenID Bağlan kimlik doğrulama standardına uygun olarak kabul etmesi ve yanıtlaması gerekir.
İstemci 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 burada bulabilirsiniz. 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. Veren Hizmet kimlik belirtecini Authenticator tarafından gönderildikten sonra doğrulamak için gereken ortak anahtarları indirmek için bu uç noktayı 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 |
kullanmalıdır vcclient://openid/ . |
response_mode |
desteklenmelidir query . |
response_type |
desteklenmelidir code . |
scope |
desteklenmelidir openid . |
state |
OpenID Bağlan standardına göre istemciye döndürülmelidir. |
nonce |
OpenID Bağlan 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 Bağlan standardına göre istemciye döndürülmelidir. |
Belirteç isteği
Kimlik sağlayıcınıza gönderilen belirteç isteği aşağıdaki forma sahip olacaktır.
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 |
kullanmalıdır vcclient://openid/ . |
scope |
desteklenmelidir openid . |
grant_type |
desteklenmelidir authorization_code . |
code |
Kimlik sağlayıcınız tarafından döndürülen yetkilendirme kodu. |
Belirteç isteğini aldıktan sonra kimlik sağlayıcınız bir kimlik belirteci ile yanıt vermelidir.
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.
Talep | Değer |
---|---|
kid |
OpenID sağlayıcısındaki bir girişe karşılık gelen kimlik belirtecini imzalamak için kullanılan anahtarın anahtar tanımlayıcısı jwks_uri . |
aud |
Uygulama kayıt işlemi sırasında alınan istemci kimliği. |
iss |
OpenID Bağlan yapılandırma belgenizdeki değer olmalıdırissuer . |
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 Bilgileri'ne eklenecek ek talepler içermelidir. Bu bölüm, kullanıcı hakkında adı gibi tüm öznitelikleri eklemeniz gereken yerdir. |