Self servis kaydolmaya özel onay iş akışı ekleme

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.

Önemli

Onay sisteminiz için bir uygulama kaydetme

İpucu

Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.

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.

  1. Microsoft Entra yönetim merkezinde en az Kullanıcı Yönetici istrator olarak oturum açın.
  2. Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları ve ardından Yeni kayıt'ı seçin.
  3. Uygulama için bir Ad girin, örneğin, Kaydolma Onaylar.
  4. Kaydet'i seçin. Diğer alanları varsayılan değerlerinde bırakabilirsiniz.

Kaydet düğmesini vurgulayan ekran görüntüsü.

  1. Soldaki menüden Yönet'in altında API izinleri'ni ve ardından İzin ekle'yi seçin.
  2. API izinleri iste sayfasında Microsoft Graph'ı ve ardından Uygulama izinleri'ni seçin.
  3. İ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 isteme işleminin ekran görüntüsü.

  1. API izinleri sayfasında Yönetici onayı ver 'i (kiracı adınız) ve ardından Evet'i seçin.
  2. Soldaki menüde Yönet'in altında Sertifikalar ve gizli diziler'i ve ardından Yeni istemci gizli dizisi'ni seçin.
  3. Gizli dizi için, örneğin Onaylar istemci gizli dizisi için bir Açıklama girin ve istemci gizli dizisinin Süresinin Dolmasına ilişkin süreyi seçin. Ardından Ekle'yi seçin.
  4. İ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.

İstemci gizli dizisini kopyalama işleminin ekran görüntüsü.

  1. Onay sisteminizi, Uygulama Kimliği'ni istemci kimliği olarak ve Microsoft Entra Kimliği ile kimlik doğrulaması yapmak için oluşturduğunuz istemci gizli dizisi olarak 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 durumu API'sinin bağlayıcı yapılandırmasını denetleme ekran görüntüsü.

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

İstek onayı API'sinin bağlayıcı yapılandırmasının ekran görüntüsü.

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:

  1. Microsoft Entra yönetim merkezinde en az Kullanıcı Yönetici istrator olarak oturum açın.

  2. Kimlik>Dış kimlikleri> Kullanıcı akışları'na gidin ve ARDıNDAN API bağlayıcısını etkinleştirmek istediğiniz kullanıcı akışını seçin.

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

Kullanıcı akışındaki API bağlayıcısının ekran görüntüsü.

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

Onay bekleyen örnek sayfa

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ı identitiesidentities[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.

  1. 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"
}
  1. 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
userPrincipalName Yes API'ye email gönderilen talep alınarak, karakteri ile _değiştirilerek ve ön beklemede olarak #EXT@<tenant-name>.onmicrosoft.comolarak değiştirilerek @oluşturulabilir.
accountEnabled Yes olarak ayarlanmalıdır true.
posta Yes API'ye email gönderilen taleple eşdeğerdir.
userType Yes olmalıdır Guest. Bu kullanıcıyı konuk kullanıcı olarak belirler.
Kimlik Yes Federasyon kimlik bilgileri.
<otherBuiltInAttribute> Hayır , cityve diğerleri gibi displayNamediğer yerleşik öznitelikler. Parametre adları, API bağlayıcısı tarafından gönderilen parametrelerle aynıdır.
<extension_{extensions-app-id}_CustomAttribute> 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.

  1. 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"
}
  1. 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>"
    }
}
  1. 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"
}

Sonraki adımlar