Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: İş gücü kiracıları
Dış kiracılar (daha fazla bilgi edinin)
API bağlayıcılarıyla, kiracınızda hangi konuk kullanıcı hesaplarının oluşturulduğunu yönetebilmek için self servis kaydolma ile kendi özel onay iş akışlarınızla tümleştirebilirsiniz.
Bu makalede bir onay sistemiyle tümleştirme örneği verilmektedir. Bu örnekte self servis kaydolma kullanıcı akışı, kayıt işlemi sırasında kullanıcı verilerini toplar ve onay sisteminize geçirir. Ardından onay sistemi şunları yapabilir:
- Kullanıcıyı otomatik olarak onaylayın ve Microsoft Entra Id'nin kullanıcı hesabını oluşturmasına izin verin.
- El ile gözden geçirme tetikleme. İstek onaylanırsa, onay sistemi kullanıcı hesabını sağlamak için Microsoft Graph kullanır. Onay sistemi, kullanıcıya hesabının oluşturulduğunu da bildirebilir.
Onay sisteminiz için bir uygulama kaydetme
Microsoft Entra Kimliği ile kimlik doğrulaması yapmak ve kullanıcı oluşturma iznine sahip olmak için onay sisteminizi Microsoft Entra kiracınıza bir uygulama olarak kaydetmeniz gerekir. Microsoft Graph için kimlik doğrulaması ve yetkilendirmeyle ilgili temel bilgiler hakkında daha fazla bilgi edinin.
- Microsoft Entra yönetim merkezinde en az Bir Kullanıcı Yöneticisi olarak oturum açın.
- Entra ID>Uygulama kayıtları'na gidin ve Yeni kayıt'ı seçin.
- Uygulama için bir Ad girin, örneğin , Kaydolma Onayları.
- Kayıt Ol'u seçin. Diğer alanları varsayılan değerlerinde bırakabilirsiniz.
- Soldaki menüden Yönet'in altında API izinleri'ni ve ardından İzin ekle'yi seçin.
- API izinleri iste sayfasında Microsoft Graph'ı ve ardından Uygulama izinleri'ni seçin.
- İzinleri seçin'in altında Kullanıcı'yı genişletin ve ardından User.ReadWrite.All onay kutusunu seçin. Bu izin onay sisteminin onay üzerine kullanıcı oluşturmasına olanak tanır. Ardından İzin ekle'yi seçin.
- API izinleri sayfasında (kiracı adınız) için yönetici onayı verin ve ardından Evet seçin.
- Soldaki menüde Yönet'in altında Sertifikalar ve gizli anahtarlar'ı ve ardından Yeni istemci gizli anahtarı'nı seçin.
- Gizli için bir Açıklama girin, örneğin Onaylar istemci sırrı, ve istemci sırrının Süresi Dolacağı Tarih için süreyi seçin. Ardından Ekle'yi seçin.
- İstemci gizli dizisinin değerini kopyalayın. İstemci gizli anahtarı değerleri yalnızca oluşturulduktan hemen sonra görüntülenebilir. Sayfadan çıkmadan önce, oluşturulduğunda gizli diziyi kaydettiğinizden emin olun.
- Onay sisteminizi, Uygulama Kimliği'ni (istemci kimliği) ve Microsoft Entra Kimliği ile kimlik doğrulaması yapmak için oluşturduğunuz istemci gizli dizisi'ni kullanacak şekilde yapılandırın.
API bağlayıcıları oluşturma
Ardından self servis kaydolma kullanıcı akışınız için API bağlayıcıları oluşturacaksınız . Onay sistemi API'nizin aşağıda gösterilen örnekler gibi iki bağlayıcıya ve buna karşılık gelen uç noktalara ihtiyacı vardır. Bu API bağlayıcıları aşağıdakileri yapar:
- Onay durumunu denetleyin. Kullanıcının bir kimlik sağlayıcısıyla oturum açmasının hemen ardından onay sistemine bir çağrı göndererek kullanıcının mevcut bir onay isteğine sahip olup olmadığını veya zaten reddedilip reddedildiğini denetleyin. Onay sisteminiz yalnızca otomatik onay kararları verirse, bu API bağlayıcısı gerekli olmayabilir. "Onay durumunu denetle" API bağlayıcısı örneği.
- Onay isteme - Kullanıcı öznitelik toplama sayfasını tamamladıktan sonra ancak kullanıcı hesabı oluşturulmadan önce onay istemek için onay sistemine bir çağrı gönderin. Onay isteği otomatik olarak verilebilir veya el ile gözden geçirilebilir. "Onay iste" API bağlayıcısı örneği.
Bu bağlayıcıları oluşturmak için API bağlayıcısı oluşturma başlığındaki adımları izleyin.
Kullanıcı akışında API bağlayıcılarını etkinleştirme
Şimdi şu adımları izleyerek API bağlayıcılarını bir self servis kaydolma kullanıcı akışına ekleyeceksiniz:
Microsoft Entra yönetim merkezinde en az Bir Kullanıcı Yöneticisi olarak oturum açın.
Entra Id>Dış Kimlikler>Kullanıcı akışları'na gidin ve API bağlayıcısını etkinleştirmek istediğiniz kullanıcı akışını seçin.
API bağlayıcıları'nı seçin ve ardından kullanıcı akışında aşağıdaki adımlarda çağırmak istediğiniz API uç noktalarını seçin:
- Kaydolma sırasında bir kimlik sağlayıcısıyla federasyon kurduktan sonra: Onay durumu API bağlayıcınızı seçin, örneğin Onay durumunu denetle.
- Kullanıcıyı oluşturmadan önce: Onay isteği API bağlayıcınızı seçin, örneğin Onay iste.
- Kaydet'i seçin.
API yanıtları ile kaydolma akışını denetleme
Onay sisteminiz, kayıt akışını denetlemek için çağrıldığında yanıtlarını kullanabilir.
"Onay durumunu denetle" API bağlayıcısı için istek ve yanıtlar
"Onay durumunu denetle" API bağlayıcısından API tarafından alınan istek örneği:
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [ //Sent for Google, Facebook, and Email One Time Passcode identity providers
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"givenName":"John",
"lastName":"Smith",
"ui_locales":"en-US"
}
API'ye gönderilen tam talepler, kimlik sağlayıcısı tarafından hangi bilgilerin sağlandığına bağlıdır. 'e-posta' her zaman gönderilir.
"Onay durumunu denetle" için devam yanıtı
Onay durumunu denetle API'sinin uç noktası şu durumda bir devamlılık yanıtı döndürmelidir:
- Kullanıcı daha önce onay istememiştir.
Devamlılık yanıtı örneği:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "Continue"
}
"Onay durumunu denetle" için engelleme yanıtı
Onay durumunu denetle API'sinin uç noktası şu durumda bir engelleme yanıtı döndürmelidir:
- Kullanıcı onayı bekleniyor.
- Kullanıcı reddedildi ve bir daha onay istemesine izin verilmemesi gerekiyor.
Engelleyici yanıt örnekleri aşağıda verilmiştir:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your access request is already processing. You'll be notified when your request has been approved.",
}
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your sign up request has been denied. Please contact an administrator if you believe this is an error",
}
"Onay iste" API bağlayıcısı için istek ve yanıtlar
"Onay iste" API bağlayıcısından API tarafından alınan HTTP isteği örneği:
POST <API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"identities": [ // Sent for Google, Facebook, and Email One Time Passcode identity providers
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"givenName":"John",
"surname":"Smith",
"jobTitle":"Supplier",
"streetAddress":"1000 Microsoft Way",
"city":"Seattle",
"postalCode": "12345",
"state":"Washington",
"country":"United States",
"extension_<extensions-app-id>_CustomAttribute1": "custom attribute value",
"extension_<extensions-app-id>_CustomAttribute2": "custom attribute value",
"ui_locales":"en-US"
}
API'ye gönderilen tam talepler, kullanıcıdan hangi bilgilerin toplandığına veya kimlik sağlayıcısı tarafından sağlandığına bağlıdır.
"Onay iste" için devam yanıtı
İstek onayı API'sinin uç noktası aşağıdakiler durumunda bir devamlılık yanıtı döndürmelidir:
- Kullanıcı otomatik olarak onaylanabilir.
Devamlılık yanıtı örneği:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "Continue"
}
Önemli
Devam yanıtı alınırsa, Microsoft Entra Id bir kullanıcı hesabı oluşturur ve kullanıcıyı uygulamaya yönlendirir.
"Onay iste" için Engelleme Yanıtı
İstek onayı API'sinin uç noktası aşağıdakiler durumunda bir engelleme yanıtı döndürmelidir:
- Bir kullanıcı onay isteği oluşturuldu ve şu anda beklemede.
- Kullanıcı onay isteği otomatik olarak reddedildi.
Engelleyici yanıt örnekleri aşağıda verilmiştir:
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your account is now waiting for approval. You'll be notified when your request has been approved.",
}
HTTP/1.1 200 OK
Content-type: application/json
{
"version": "1.0.0",
"action": "ShowBlockPage",
"userMessage": "Your sign up request has been denied. Please contact an administrator if you believe this is an error",
}
userMessage
yanıttaki kullanıcı için görüntülenir, örneğin:
El ile onaydan sonra kullanıcı hesabı oluşturma
Özel onay sistemi el ile onay aldıktan sonra Microsoft Graph kullanarak bir kullanıcı hesabı oluşturur. Onay sisteminizin kullanıcı hesabını sağlama şekli, kullanıcı tarafından kullanılan kimlik sağlayıcısına bağlıdır.
Federasyon Google veya Facebook kullanıcısı ve tek seferlik geçiş kodu e-postası için
Önemli
Onay sistemi, ve'nin mevcut olup olmadığını identities
identities[0]
identities[0].issuer
ve bu yöntemi kullanmak için 'facebook', 'google' veya 'mail' değerine eşit olduğunu identities[0].issuer
açıkça denetlemelidir.
Kullanıcınız bir Google veya Facebook hesabıyla oturum açtıysa veya bir kerelik geçiş kodu e-posta ile oturum açtıysa, Kullanıcı oluşturma API'sini kullanabilirsiniz.
- Kullanılan onay sistemi, kullanıcı akışından HTTP isteğini alır.
POST <Approvals-API-endpoint>
Content-type: application/json
{
"email": "johnsmith@outlook.com",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value",
"ui_locales":"en-US"
}
- Onay sistemi, kullanıcı hesabı oluşturmak için Microsoft Graph kullanır.
POST https://graph.microsoft.com/v1.0/users
Content-type: application/json
{
"userPrincipalName": "johnsmith_outlook.com#EXT@contoso.onmicrosoft.com",
"accountEnabled": true,
"mail": "johnsmith@outlook.com",
"userType": "Guest",
"identities": [
{
"signInType":"federated",
"issuer":"facebook.com",
"issuerAssignedId":"0123456789"
}
],
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value"
}
Parametre | Zorunlu | Açıklama |
---|---|---|
kullanıcı ana adı | Evet | API'ye email gönderilen talep alınarak, karakteri ile @ değiştirilerek ve ön beklemede olarak _ olarak değiştirilerek #EXT@<tenant-name>.onmicrosoft.com oluşturulabilir. |
hesap etkinleştirildi | Evet | olarak ayarlanmalıdır true . |
posta | Evet | API'ye email gönderilen taleple eşdeğerdir. |
kullanıcı türü | Evet | olmalıdır Guest . Bu kullanıcıyı konuk kullanıcı olarak belirler. |
Kimlik | Evet | Federasyon kimlik bilgileri. |
<diğerYerleşikÖznitelik> | Hayır | , displayName ve diğerleri gibi city diğer yerleşik öznitelikler. Parametre adları, API bağlayıcısı tarafından gönderilen parametrelerle aynıdır. |
<uzantı_{extensions-app-id}_ÖzelleştirilmişÖzellik> | Hayır | Kullanıcı hakkındaki özel öznitelikler. Parametre adları, API bağlayıcısı tarafından gönderilen parametrelerle aynıdır. |
Federasyon Microsoft Entra kullanıcısı veya Microsoft hesabı kullanıcısı için
Bir kullanıcı federasyon Microsoft Entra hesabıyla veya Microsoft hesabıyla oturum açarsa, kullanıcıyı oluşturmak için davet API'sini kullanmanız ve ardından isteğe bağlı olarak kullanıcıya daha fazla öznitelik atamak için kullanıcı güncelleştirme API'sini kullanmanız gerekir.
- Onay sistemi, kullanıcı akışından HTTP isteğini alır.
POST <Approvals-API-endpoint>
Content-type: application/json
{
"email": "johnsmith@fabrikam.onmicrosoft.com",
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_CustomAttribute": "custom attribute value",
"ui_locales":"en-US"
}
- Onay sistemi, API bağlayıcısı tarafından sağlanan öğesini kullanarak
email
daveti oluşturur.
POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json
{
"invitedUserEmailAddress": "johnsmith@fabrikam.onmicrosoft.com",
"inviteRedirectUrl" : "https://myapp.com"
}
Yanıt örneği:
HTTP/1.1 201 OK
Content-type: application/json
{
...
"invitedUser": {
"id": "<generated-user-guid>"
}
}
- Onay sistemi, kullanıcının hesabını toplanan kullanıcı öznitelikleriyle güncelleştirmek için davet edilen kullanıcının kimliğini kullanır (isteğe bağlı).
PATCH https://graph.microsoft.com/v1.0/users/<generated-user-guid>
Content-type: application/json
{
"displayName": "John Smith",
"city": "Redmond",
"extension_<extensions-app-id>_AttributeName": "custom attribute value"
}