Öğretici: Microsoft Entra ID'de SCIM uç noktası için sağlamayı geliştirme ve planlama

Uygulama geliştiricisi olarak, uygulamanızla Microsoft Entra Id arasında kullanıcıların ve grupların otomatik olarak sağlanmasını sağlamak için Etki Alanları Arası Kimlik Yönetimi (SCIM) kullanıcı yönetimi API'si için Sistem'i kullanabilirsiniz. Bu makalede, SCIM uç noktasının nasıl derlenmesi ve Microsoft Entra sağlama hizmetiyle tümleştirilmesi açıklanır. SCIM belirtimi, sağlama için ortak bir kullanıcı şeması sağlar. SAML veya OpenID Bağlan gibi federasyon standartlarıyla kullanıldığında SCIM, yöneticilere erişim yönetimi için uçtan uca, standartlara dayalı bir çözüm sunar.

Provisioning from Microsoft Entra ID to an app with SCIM

SCIM 2.0, iki uç noktanın standartlaştırılmış bir tanımıdır: uç /Users nokta ve /Groups uç nokta. Nesneleri oluşturmak, güncelleştirmek ve silmek için yaygın REST API uç noktalarını kullanır. SCIM grup adı, kullanıcı adı, ad, soyadı ve e-posta gibi yaygın öznitelikler için önceden tanımlanmış bir şemadan oluşur.

SCIM 2.0 REST API'sini sunan uygulamalar, özel bir kullanıcı yönetimi API'siyle çalışma zahmetini azaltabilir veya ortadan kaldırabilir. Örneğin, uyumlu herhangi bir SCIM istemcisi yeni bir kullanıcı girdisi oluşturmak için uç noktaya bir JSON nesnesinin HTTP POST'unun /Users nasıl yapılacağını bilir. Aynı temel eylemler için biraz farklı bir API'ye ihtiyaç duymanız yerine, SCIM standardına uyan uygulamalar önceden var olan istemcilerden, araçlardan ve kodlardan anında yararlanabilir.

SCIM 2.0'da tanımlanan yönetim için standart kullanıcı nesnesi şeması ve rest API'leri (RFC 7642, 7643, 7644), kimlik sağlayıcılarının ve uygulamaların birbirleriyle daha kolay tümleştirilmesine olanak tanır. SCIM uç noktası oluşturan uygulama geliştiricileri, özel iş yapmak zorunda kalmadan SCIM uyumlu herhangi bir istemciyle tümleştirebilir.

Bir uygulamaya sağlamayı otomatikleştirmek için, Microsoft Entra sağlama hizmeti tarafından erişen bir SCIM uç noktasının oluşturulması ve tümleştirilmesi gerekir. Uygulamanıza kullanıcı ve grup sağlamaya başlamak için aşağıdaki adımları kullanın.

  1. Kullanıcı ve grup şemanızı tasarlama - Microsoft Entra SCIM uygulaması tarafından desteklenen kullanıcı ve grup şemasıyla nasıl eşleneceğini belirlemek için uygulamanın nesnelerini ve özniteliklerini belirleyin.

  2. Microsoft Entra SCIM uygulamasını anlama - SCIM protokolü isteği işleme ve yanıtlarınızı modellemek için Microsoft Entra sağlama hizmetinin nasıl uygulandığını anlayın.

  3. SCIM uç noktası oluşturma - Bir uç noktanın Microsoft Entra sağlama hizmetiyle tümleştirilebilmesi için SCIM 2.0 uyumlu olması gerekir. Seçenek olarak, uç noktanızı oluşturmak için Microsoft Ortak Dil Altyapısı (CLI) kitaplıklarını ve kod örneklerini kullanın. Bu örnekler yalnızca başvuru ve test amaçlıdır; bunları üretim uygulamanızda bağımlılık olarak kullanmamanızı öneririz.

  4. SCIM uç noktanızı Microsoft Entra sağlama hizmetiyle tümleştirin. Microsoft Entra ID, SCIM 2.0 uygulayan birkaç üçüncü taraf uygulamayı destekler. Bu uygulamalardan birini kullanıyorsanız, kullanıcıların ve grupların hem sağlamasını hem de sağlamasını kaldırmayı hızlı bir şekilde otomatikleştirebilirsiniz.

  5. [İsteğe bağlı] Uygulamanızı Microsoft Entra uygulama galerisinde yayımlama - Müşterilerin uygulamanızı keşfetmesini ve sağlamayı kolayca yapılandırmasını kolaylaştırın.

Diagram that shows the required steps for integrating a SCIM endpoint with Microsoft Entra ID.

Kullanıcı ve grup şemanızı tasarlama

Her uygulama, kullanıcı veya grup oluşturmak için farklı öznitelikler gerektirir. Uygulamanızın ihtiyaç duyduğu gerekli nesneleri (kullanıcılar, gruplar) ve öznitelikleri (ad, yönetici, iş unvanı vb.) tanımlayarak tümleştirmenizi başlatın.

SCIM standardı, kullanıcıları ve grupları yönetmek için bir şema tanımlar.

Çekirdek kullanıcı şeması yalnızca üç öznitelik gerektirir (diğer tüm öznitelikler isteğe bağlıdır):

  • id, hizmet sağlayıcısı tanımlı tanımlayıcı
  • userName, kullanıcı için benzersiz bir tanımlayıcı (genellikle Microsoft Entra kullanıcı asıl adıyla eşler)
  • meta, hizmet sağlayıcısı tarafından tutulan salt okunur meta veriler

Çekirdek kullanıcı şemasına ek olarak SCIM standardı, kullanıcı şemasını uygulamanızın gereksinimlerini karşılayacak şekilde genişletmeye yönelik bir modele sahip bir kurumsal kullanıcı uzantısı tanımlar.

Örneğin, uygulamanız hem kullanıcının e-postasına hem de kullanıcının yöneticisine ihtiyaç duyuyorsa, kullanıcının e-postasını toplamak için çekirdek şemayı ve kullanıcının yöneticisini toplamak için kurumsal kullanıcı şemasını kullanın.

Şemanızı tasarlamak için şu adımları izleyin:

  1. Uygulamanızın gerektirdiği öznitelikleri listeleyin, ardından kimlik doğrulaması için gereken öznitelikler olarak kategorilere ayırın (örneğin, loginName ve e-posta). Kullanıcı yaşam döngüsünü (örneğin, durum / etkin) ve uygulamanın çalışması için gereken diğer tüm öznitelikleri (örneğin, yönetici, etiket) yönetmek için öznitelikler gereklidir.

  2. Özniteliklerin çekirdek kullanıcı şemasında mı yoksa kurumsal kullanıcı şemasında tanımlandığını denetleyin. Aksi takdirde, eksik öznitelikleri kapsayan bir kullanıcı şeması uzantısı tanımlamanız gerekir. Bir kullanıcının sağlanmasına izin vermek için kullanıcıya yönelik bir taguzantı örneğine bakın.

  3. SCIM özniteliklerini Microsoft Entra Id'deki kullanıcı öznitelikleriyle eşleyin. SCIM uç noktanızda tanımladığınız özniteliklerden birinin Microsoft Entra kullanıcı şemasında net bir karşılığı yoksa, kiracı yöneticisine şemasını genişletmesi için kılavuzluk edin veya özellik örneğinde tags gösterildiği gibi bir uzantı özniteliği kullanın.

Aşağıdaki tabloda gerekli özniteliklere bir örnek liste verilmiştir:

Gerekli uygulama özniteliği/örnek Eşlenmiş SCIM özniteliği Eşlenen Microsoft Entra özniteliği
Loginname userName userPrincipalName
firstName name.givenName givenName
lastName name.familyName Soyadı
workMail emails[type eq "work"].value Posta
manager manager manager
etiket urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User:tag extensionAttribute1
durum active isSoftDeleted (hesaplanan değer kullanıcıda depolanmaz)

Aşağıdaki JSON yükü örnek bir SCIM şemasını gösterir:

{
     "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
      "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User"],
     "userName":"bjensen@testuser.com",
     "id": "48af03ac28ad4fb88478",
     "externalId":"bjensen",
     "name":{
       "familyName":"Jensen",
       "givenName":"Barbara"
     },
     "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
     "manager": "123456"
   },
     "urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User": {
     "tag": "701984",
   },
   "meta": {
     "resourceType": "User",
     "created": "2010-01-23T04:56:22Z",
     "lastModified": "2011-05-13T04:42:34Z",
     "version": "W\/\"3694e05e9dff591\"",
     "location":
 "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"
   }
}   

Not

Uygulama için gerekli özniteliklere ek olarak, JSON gösterimi gerekli id, externalIdve meta özniteliklerini de içerir.

Microsoft Entra ID'deki varsayılan kullanıcı özniteliklerini SCIM RFC ile eşlemek için ve arasında /User kategorilere ayırmaya yardımcı olur. Özelleştirme özniteliklerinin Microsoft Entra Id ile SCIM uç noktanız arasında nasıl eşlendiğine bakın./Group

Aşağıdaki tabloda kullanıcı özniteliklerine bir örnek liste verilmiştir:

Microsoft Entra kullanıcısı urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
IsSoftDeleted active
department urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department
displayName displayName
Employeeıd urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber
Facsimile-TelephoneNumber phoneNumbers[type eq "fax"].value
givenName name.givenName
jobTitle Başlık
posta emails[type eq "work"].value
Mailnickname externalId
manager urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager
http://technet.microsoft.com/en-us/dn451248 phoneNumbers[type eq "mobile"].value
postalCode addresses[type eq "work"].postalCode
proxy-Addresses email[type eq "other"]. Değer
physical-Delivery-OfficeName addresses[type eq "other"]. Biçimlendirilmiş
streetAddress addresses[type eq "work"].streetAddress
surname name.familyName
telefon numarası phoneNumbers[type eq "work"].value
user-PrincipalName userName

Aşağıdaki tabloda grup özniteliklerine bir örnek liste verilmiştir:

Microsoft Entra grubu urn:ietf:params:scim:schemas:core:2.0:Group
displayName displayName
üyeler üyeler
objectId externalId

Not

Hem kullanıcıları hem de grupları veya burada gösterilen tüm öznitelikleri desteklemeniz gerekmez, yalnızca Microsoft Entra ID'deki özniteliklerin SCIM protokolündeki özelliklerle nasıl eşlendiğine ilişkin bir başvuru olur.

SCIM RFC'de tanımlanan birkaç uç nokta vardır. Uç noktayla /User başlayıp oradan genişletebilirsiniz. Aşağıdaki tabloda bazı SCIM uç noktaları listelemektedir:

Uç nokta Açıklama
/Kullanıcı Kullanıcı nesnesinde CRUD işlemleri gerçekleştirme.
/Group Bir grup nesnesi üzerinde CRUD işlemleri gerçekleştirme.
/Şema Her istemci ve hizmet sağlayıcısı tarafından desteklenen öznitelik kümesi farklılık gösterebilir. Bir hizmet sağlayıcısı , titleve emailskullanırken, başka bir hizmet sağlayıcısı name, titleve phoneNumbersiçerebilirname. Şemalar uç noktası, desteklenen özniteliklerin bulunmasına olanak tanır.
/Toplu Toplu işlemler, tek bir işlemde (örneğin, büyük bir grup için üyelikleri güncelleştirme) büyük bir kaynak nesneleri koleksiyonu üzerinde işlem gerçekleştirmenizi sağlar.
/ServiceProviderConfig Desteklenen SCIM standardının özellikleri hakkında, örneğin desteklenen kaynaklar ve kimlik doğrulama yöntemi hakkında ayrıntılar sağlar.
/ResourceTypes Her kaynakla ilgili meta verileri belirtir.

Not

/Schemas Özel öznitelikleri desteklemek için uç noktayı kullanın veya istemcinin en güncel şemayı otomatik olarak almasına olanak sağladığından şemanız sık sık değişiyorsa. /Bulk Grupları desteklemek için uç noktayı kullanın.

Microsoft Entra SCIM uygulamasını anlama

Microsoft Entra sağlama hizmeti, SCIM 2.0 kullanıcı yönetimi API'sini destekleyecek şekilde tasarlanmıştır.

Önemli

Microsoft Entra SCIM uygulamasının davranışı son olarak 18 Aralık 2018'de güncelleştirildi. Nelerin değiştiği hakkında bilgi için bkz . Microsoft Entra kullanıcı sağlama hizmetinin SCIM 2.0 protokolü uyumluluğu.

SCIM 2.0 protokol belirtiminde uygulamanızın şu gereksinimleri desteklemesi gerekir:

Gereksinim Başvuru notları (SCIM protokolü)
Kullanıcı oluşturma ve isteğe bağlı olarak grup oluşturma Bölüm 3.3
PATCH istekleriyle kullanıcıları veya grupları değiştirme Bölüm 3.5.2. Destek, grupların ve kullanıcıların yüksek performanslı bir şekilde sağlanmasını sağlar.
Daha önce oluşturulan bir kullanıcı veya grup için bilinen bir kaynağı alma Bölüm 3.4.1
Kullanıcıları veya grupları sorgulama Bölüm 3.4.2. Varsayılan olarak, kullanıcılar ile alınır id ve ve usernameexternalIdile sorgulanır ve grupları ile displayNamesorgulanır.
Grup kaynağını sorgularken excludedAttributes=members filtresi Bölüm 3.4.2.2
Kullanıcıları listeleme ve sayfalandırma desteği Bölüm 3.4.2.4.
Kullanıcıyı geçici olarak silme ve kullanıcıyı active=false geri yükleme active=true Kullanıcı nesnesi, kullanıcının etkin olup olmamasına bakılmaksızın bir istekte döndürülmelidir. Kullanıcının döndürülmemesi gereken tek zaman, uygulamanın sabit olarak silinmesidir.
/Schemas uç noktasını destekleme Bölüm 7 Şema bulma uç noktası, daha fazla öznitelik bulmak için kullanılır.
Uygulamanızda Microsoft Entra Kimliğinin kimlik doğrulaması ve yetkilendirmesi için tek bir taşıyıcı belirteci kabul edin.

Microsoft Entra Id ile uyumluluğu sağlamak için SCIM uç noktasını uygularken genel yönergeleri kullanın:

Genel:

  • id tüm kaynaklar için gerekli bir özelliktir. Bir kaynak döndüren her yanıt, sıfır öğe dışında ListResponse her kaynağın bu özelliğe sahip olduğundan emin olmalıdır.
  • Gönderilen değerler, gönderildikleri biçimde depolanmalıdır. Geçersiz değerler açıklayıcı, eyleme dönüştürülebilir bir hata iletisiyle reddedilmelidir. Microsoft Entra Id ile SCIM uygulamasında depolanan veriler arasında veri dönüştürmeleri gerçekleşmemelidir. (örneğin. 55555555555 olarak gönderilen bir telefon numarası +5 (555) 555-5555) olarak kaydedilmemeli/döndürülmemelidir
  • Patch yanıtına kaynağın tamamının dahil edilmesi gerekmez.
  • Bölüm 3.5.2'de tanımlandığı gibi, SCIM'deki yapısal öğelerde, özellikle PATCHop işlem değerlerinde büyük/küçük harfe duyarlı eşleşmeye gerek yoktur. Microsoft Entra Id, değerlerini op Ekle, Değiştir ve Kaldır olarak gösterir.
  • Microsoft Entra Id, uç noktanın ve kimlik bilgilerinin geçerli olduğundan emin olmak için rastgele bir kullanıcı ve grup getirme isteklerinde bulunur. Ayrıca Test Bağlan ion akışının bir parçası olarak da gerçekleştirilir.
  • SCIM uç noktanızda HTTPS desteği.
  • Özel karmaşık ve birden çok değerli öznitelikler desteklenir, ancak Microsoft Entra ID'de bu durumlarda veri çekmek için çok fazla karmaşık veri yapısı yoktur. Ad/değer öznitelikleri kolayca eşlenebilir, ancak üç veya daha fazla alt öğe içeren karmaşık özniteliklere veri akışı desteklenmez.
  • Çok değerli karmaşık özniteliklerin "tür" alt öznitelik değerleri benzersiz olmalıdır. Örneğin, "work" alt türüne sahip iki farklı e-posta adresi olamaz.
  • Tüm yanıtların üst bilgisi content-Type: application/scim+json olmalıdır

Kaynaklar Alınıyor:

  • Sorgu/filtre isteğine yanıt her zaman bir ListResponseolmalıdır.
  • Microsoft Entra-only şu işleçleri kullanır: eq, and
  • Kaynakların sorgulanabileceği öznitelik, uygulamada eşleşen bir öznitelik olarak ayarlanmalıdır. Bkz . Kullanıcı Sağlama Öznitelik Eşlemelerini Özelleştirme.

/Kullanıcı:

  • Yetkilendirmeler özniteliği desteklenmez.
  • Kullanıcı benzersizliği için kabul edilen tüm öznitelikler, filtrelenmiş sorgunun parçası olarak kullanılabilir olmalıdır. (örneğin, kullanıcı benzersizliği hem userName hem de eq "work" yazın] için değerlendirilirse, filtreye sahip bir GET to /Users işlevi hem userName eq "" hem de eq "work"].value eq "user@contoso.comuser@contoso.com" sorgularına izin vermelidir.

/Grup:

  • Gruplar isteğe bağlıdır, ancak yalnızca SCIM uygulaması PATCH isteklerini destekliyorsa desteklenir.
  • Grupların Microsoft Entra Id ve SCIM uygulamasıyla eşleşmesi için 'displayName' değerinde benzersiz olması gerekir. Benzersizlik SCIM protokolünün bir gereksinimi değildir, ancak SCIM uç noktasını Microsoft Entra Id ile tümleştirmek için bir gereksinimdir.

/Schemas (Şema bulma):

  • Örnek istek/yanıt
  • Şema bulma, belirli galeri uygulamalarında kullanılıyor. Şema bulma, mevcut bir galeri SCIM uygulamasının şemasına daha fazla öznitelik eklemek için tek yöntemdir. Şema bulma şu anda özel galeri dışı SCIM uygulamasında desteklenmiyor.
  • Bir değer yoksa null değerler göndermeyin.
  • Özellik değerleri büyük/küçük harfe yazılmalıdır (örneğin, readWrite).
  • Bir liste yanıtı döndürmelidir.
  • Microsoft Entra sağlama hizmeti, sağlama yapılandırmasını kaydettiğinizde /schemas isteğinde bulunur. Düzenleme sağlama sayfasını açtığınızda da istek yapılır. Bulunan diğer öznitelikler, hedef öznitelik listesinin altındaki öznitelik eşlemelerinde müşterilere sunulur. Şema bulma yalnızca daha fazla hedef özniteliğin eklenmesine yol açar. Öznitelikler kaldırılmaz.

Kullanıcı sağlama ve sağlamayı kaldırma

Aşağıdaki diyagramda, Microsoft Entra Id'nin uygulamanızın kimlik deposundaki bir kullanıcının yaşam döngüsünü yönetmek için scim uç noktasına gönderdiği iletiler gösterilmektedir.

Diagram that shows the user deprovisioning sequence.

Grup sağlama ve sağlamayı kaldırma

Grup sağlama ve sağlamayı kaldırma isteğe bağlıdır. Uygulandığında ve etkinleştirildiğinde, aşağıdaki çizimde Microsoft Entra Id'nin uygulamanızın kimlik deposundaki bir grubun yaşam döngüsünü yönetmek için scim uç noktasına gönderdiği iletiler gösterilir. Bu iletiler, kullanıcılarla ilgili iletilerden iki şekilde farklıdır:

  • Grupları alma istekleri, üyeler özniteliğinin isteğe yanıt olarak sağlanan herhangi bir kaynaktan dışlanması gerektiğini belirtir.
  • Bir başvuru özniteliğinin belirli bir değere sahip olup olmadığını belirleme istekleri, üyeler özniteliğiyle ilgili isteklerdir.

Aşağıdaki diyagramda grubun sağlamasını kaldırma sırası gösterilmektedir:

Diagram that shows the group deprovisioning sequence.

SCIM protokol istekleri ve yanıtları

Bu makalede, Microsoft Entra sağlama hizmeti tarafından gönderilen örnek SCIM istekleri ve beklenen yanıtlar verilmiştir. En iyi sonuçları elde etmek için uygulamanızı bu istekleri bu biçimde işleyecek ve beklenen yanıtları yayacak şekilde kodlamalısınız.

Önemli

Microsoft Entra kullanıcı sağlama hizmetinin örnekte açıklanan işlemleri nasıl ve ne zaman yaydığını anlamak için Sağlama döngüleri: Sağlama nasıl çalışır? bölümündeki Başlangıç ve artımlı bölümüne bakın.

Kullanıcı İşlemleri

Grup İşlemleri

Şema bulma

Kullanıcı İşlemleri

  • Kullanıcıları sorgulamak için veya emails[type eq "work"] özniteliklerini kullanınuserName.

Kullanıcı oluşturma

İste

POST /Users

{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User",
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
    "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
    "userName": "Test_User_ab6490ee-1e48-479e-a20b-2d77186b5dd1",
    "active": true,
    "emails": [{
        "primary": true,
        "type": "work",
        "value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com"
    }],
    "meta": {
        "resourceType": "User"
    },
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName"
    },
    "roles": []
}
Response

HTTP/1.1 201 Oluşturuldu

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "48af03ac28ad4fb88478",
    "externalId": "0a21f0f2-8d2a-4f8e-bf98-7363c4aed4ef",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_ab6490ee-1e48-479e-a20b-2d77186b5dd1",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_fd0ea19b-0777-472c-9f96-4f70d2226f2e@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Get User

İste

GET /Users/5d48a0a8e9f04aa38008

Yanıt (Kullanıcı bulundu)

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "5d48a0a8e9f04aa38008",
    "externalId": "58342554-38d6-4ec8-948c-50044d0a33fd",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_feed3ace-693c-4e5a-82e2-694be1b39934",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_22370c1a-9012-42b2-bf64-86099c2a1c22@testuser.com",
        "type": "work",
        "primary": true
    }]
}
İste

GET /Users/5171a35d82074e068ce2

Yanıt (Kullanıcı bulunamadı. Ayrıntı gerekli değildir, yalnızca durumdur.)

HTTP/1.1 404 Bulunamadı

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:Error"
    ],
    "status": "404",
    "detail": "Resource 23B51B0E5D7AE9110A49411D@7cca31655d49f3640a494224 not found"
}

Sorguya göre Kullanıcı Al

İste

GET /Users?filter=userName eq "Test_User_dfeef4c5-5681-4387-b016-bdf221e82081"

Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "id": "2441309d85324e7793ae",
        "externalId": "7fce0092-d52e-4f76-b727-3955bd72c939",
        "meta": {
            "resourceType": "User",
            "created": "2018-03-27T19:59:26.000Z",
            "lastModified": "2018-03-27T19:59:26.000Z"
            
        },
        "userName": "Test_User_dfeef4c5-5681-4387-b016-bdf221e82081",
        "name": {
            "familyName": "familyName",
            "givenName": "givenName"
        },
        "active": true,
        "emails": [{
            "value": "Test_User_91b67701-697b-46de-b864-bd0bbe4f99c1@testuser.com",
            "type": "work",
            "primary": true
        }]
    }],
    "startIndex": 1,
    "itemsPerPage": 20
}

Sorguya göre kullanıcı alma - Sıfır sonuç

İste

GET /Users?filter=userName eq "mevcut olmayan kullanıcı"

Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 0,
    "Resources": [],
    "startIndex": 1,
    "itemsPerPage": 20
}

Kullanıcıyı Güncelleştirme [Çok değerli özellikler]

İste

PATCH /Users/6764549bef60420686bc HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
            {
            "op": "Replace",
            "path": "emails[type eq \"work\"].value",
            "value": "updatedEmail@microsoft.com"
            },
            {
            "op": "Replace",
            "path": "name.familyName",
            "value": "updatedFamilyName"
            }
    ]
}
Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "6764549bef60420686bc",
    "externalId": "6c75de36-30fa-4d2d-a196-6bdcdb6b6539",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "userName": "Test_User_fbb9dda4-fcde-4f98-a68b-6c5599e17c27",
    "name": {
        "formatted": "givenName updatedFamilyName",
        "familyName": "updatedFamilyName",
        "givenName": "givenName"
    },
    "active": true,
    "emails": [{
        "value": "updatedEmail@microsoft.com",
        "type": "work",
        "primary": true
    }]
}

Kullanıcıyı Güncelleştirme [Tek değerli özellikler]

İste

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Replace",
        "path": "userName",
        "value": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com"
    }]
}
Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
    "id": "5171a35d82074e068ce2",
    "externalId": "aa1eca08-7179-4eeb-a0be-a519f7e5cd1a",
    "meta": {
        "resourceType": "User",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
        
    },
    "userName": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com",
    "name": {
        "formatted": "givenName familyName",
        "familyName": "familyName",
        "givenName": "givenName",
    },
    "active": true,
    "emails": [{
        "value": "Test_User_49dc1090-aada-4657-8434-4995c25a00f7@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Kullanıcıyı Devre Dışı Bırak

İste

PATCH /Users/5171a35d82074e068ce2 HTTP/1.1

{
    "Operations": [
        {
            "op": "Replace",
            "path": "active",
            "value": false
        }
    ],
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:PatchOp"
    ]
}
Response
{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "id": "CEC50F275D83C4530A495FCF@834d0e1e5d8235f90a495fda",
    "userName": "deanruiz@testuser.com",
    "name": {
        "familyName": "Harris",
        "givenName": "Larry"
    },
    "active": false,
    "emails": [
        {
            "value": "gloversuzanne@testuser.com",
            "type": "work",
            "primary": true
        }
    ],
    "addresses": [
        {
            "country": "ML",
            "type": "work",
            "primary": true
        }
    ],
    "meta": {
        "resourceType": "Users",
        "location": "/scim/5171a35d82074e068ce2/Users/CEC50F265D83B4530B495FCF@5171a35d82074e068ce2"
    }
}

Kullanıcıyı Silme

İste

DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

Response

HTTP/1.1 204 İçerik Yok

Grup İşlemleri

  • Gruplar boş bir üye listesiyle oluşturulur.
  • Grupları sorgulamak displayName için özniteliğini kullanın.
  • PATCH grubuna güncelleştirme, yanıtta http 204 İçerik Yok değerini vermelidir. Tüm üyelerin listesini içeren bir cesedi geri döndürmek önerilmez.
  • Grubun tüm üyelerinin döndürülmesi desteklenemez.

Grup oluşturma

İste

POST /Groups HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "http://schemas.microsoft.com/2006/11/ResourceManagement/ADSCIM/2.0/Group"],
    "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
    "displayName": "displayName",
    "meta": {
        "resourceType": "Group"
    }
}
Response

HTTP/1.1 201 Oluşturuldu

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "id": "927fa2c08dcb4a7fae9e",
    "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159",
    "meta": {
        "resourceType": "Group",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
        
    },
    "displayName": "displayName",
    "members": []
}

Grup Al

İste

GET /Groups/40734ae655284ad3abcc?excludedAttributes=members HTTP/1.1

Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "id": "40734ae655284ad3abcc",
    "externalId": "60f1bb27-2e1e-402d-bcc4-ec999564a194",
    "meta": {
        "resourceType": "Group",
        "created": "2018-03-27T19:59:26.000Z",
        "lastModified": "2018-03-27T19:59:26.000Z"
    },
    "displayName": "displayName",
}

displayName'e göre Grupla

İste

GET /Groups?excludedAttributes=members&filter=displayName eq "displayName" HTTP/1.1

Response

HTTP/1.1 200 Tamam

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [{
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
        "id": "8c601452cc934a9ebef9",
        "externalId": "0db508eb-91e2-46e4-809c-30dcbda0c685",
        "meta": {
            "resourceType": "Group",
            "created": "2018-03-27T22:02:32.000Z",
            "lastModified": "2018-03-27T22:02:32.000Z",
            
        },
        "displayName": "displayName",
    }],
    "startIndex": 1,
    "itemsPerPage": 20
}

Grubu Güncelleştirme [Üye olmayan öznitelikler]

İste

PATCH /Groups/fa2ce26709934589afc5 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Replace",
        "path": "displayName",
        "value": "1879db59-3bdf-4490-ad68-ab880a269474updatedDisplayName"
    }]
}
Response

HTTP/1.1 204 İçerik Yok

Grubu Güncelleştirme [Üye Ekle]

İste

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Add",
        "path": "members",
        "value": [{
            "$ref": null,
            "value": "f648f8d5ea4e4cd38e9c"
        }]
    }]
}
Response

HTTP/1.1 204 İçerik Yok

Grubu Güncelleştirme [Üyeleri Kaldır]

İste

PATCH /Groups/a99962b9f99d4c4fac67 HTTP/1.1

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [{
        "op": "Remove",
        "path": "members",
        "value": [{
            "$ref": null,
            "value": "f648f8d5ea4e4cd38e9c"
        }]
    }]
}
Response

HTTP/1.1 204 İçerik Yok

Grubu Silme

İste

DELETE /Groups/cdb1ce18f65944079d37 HTTP/1.1

Response

HTTP/1.1 204 İçerik Yok

Şema bulma

Şemayı bulma

İste

GET /Schemas

Response

HTTP/1.1 200 Tamam

{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "itemsPerPage": 50,
    "startIndex": 1,
    "totalResults": 3,
    "Resources": [
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:core:2.0:User",
    "name" : "User",
    "description" : "User Account",
    "attributes" : [
      {
        "name" : "userName",
        "type" : "string",
        "multiValued" : false,
        "description" : "Unique identifier for the User, typically
used by the user to directly authenticate to the service provider.
Each User MUST include a non-empty userName value.  This identifier
MUST be unique across the service provider's entire set of Users.
REQUIRED.",
        "required" : true,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "server"
      },                
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
        "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:User"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:core:2.0:Group",
    "name" : "Group",
    "description" : "Group",
    "attributes" : [
      {
        "name" : "displayName",
        "type" : "string",
        "multiValued" : false,
        "description" : "A human-readable name for the Group.
REQUIRED.",
        "required" : false,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "none"
      },
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
        "/v2/Schemas/urn:ietf:params:scim:schemas:core:2.0:Group"
    }
  },
  {
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Schema"],
    "id" : "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
    "name" : "EnterpriseUser",
    "description" : "Enterprise User",
    "attributes" : [
      {
        "name" : "employeeNumber",
        "type" : "string",
        "multiValued" : false,
        "description" : "Numeric or alphanumeric identifier assigned
to a person, typically based on order of hire or association with an
organization.",
        "required" : false,
        "caseExact" : false,
        "mutability" : "readWrite",
        "returned" : "default",
        "uniqueness" : "none"
      },
    ],
    "meta" : {
      "resourceType" : "Schema",
      "location" :
"/v2/Schemas/urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
    }
  }
]
}

Güvenlik gereksinimleri

TLS Protokolü Sürümleri

Kabul edilebilir tek protokol sürümü TLS 1.2'dir. Başka bir SSL/TLS sürümüne izin verilmez.

  • RSA anahtarları en az 2.048 bit olmalıdır.
  • ECC anahtarları en az 256 bit olmalı ve onaylanmış bir eliptik eğri kullanılarak oluşturulmalıdır

Anahtar Uzunlukları

Tüm hizmetler, yeterli uzunlukta şifreleme anahtarları kullanılarak oluşturulan X.509 sertifikalarını kullanmalıdır, yani:

Şifre Paketleri

Tüm hizmetler, örnekte belirtilen sırada aşağıdaki şifreleme paketlerini kullanacak şekilde yapılandırılmalıdır. Yalnızca bir RSA sertifikanız varsa ECDSA şifreleme paketlerinin herhangi bir etkisi yoktur.

TLS 1.2 Şifre Paketleri minimum çubuğu:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

IP Aralıkları

Microsoft Entra sağlama hizmeti şu anda burada listelenen Microsoft Entra Id IP Aralıkları altında çalışır. Microsoft Entra sağlama hizmetinden gelen trafiğe izin vermek için Microsoft Entra Id etiketi altında listelenen IP aralıklarını uygulamanıza ekleyebilirsiniz. Hesaplanan adresler için IP aralığı listesini dikkatle gözden geçirmeniz gerekir. IP aralığı listesinde '40.126.25.32' gibi bir adres '40.126.0.0/18' olarak gösterilebilir. Aşağıdaki API'yi kullanarak IP aralığı listesini program aracılığıyla da alabilirsiniz.

Microsoft Entra ID, özel ağlardaki (şirket içi, Azure'da barındırılan, AWS'de barındırılan vb.) uygulamalara bağlantı sağlamak için aracı tabanlı bir çözümü de destekler. Müşteriler, özel ağlarındaki bir sunucuda gelen bağlantı noktası açmadan Microsoft Entra ID'ye bağlantı sağlayan basit bir aracı dağıtabilir. Buradan daha fazla bilgi edinin.

SCIM uç noktası oluşturma

Şemanızı tasarladığınıza ve Microsoft Entra SCIM uygulamasını anladığınıza göre, SCIM uç noktanızı geliştirmeye başlayabilirsiniz. Sıfırdan başlayıp uygulamayı tamamen kendiniz oluşturmak yerine SCIM topluluğu tarafından yayımlanan birçok açık kaynak SCIM kitaplığına güvenebilirsiniz.

Örnekler de dahil olmak üzere bir SCIM uç noktası oluşturma yönergeleri için bkz . Örnek SCIM uç noktası geliştirme.

Microsoft Entra sağlama ekibi tarafından yayımlanan açık kaynak .NET Core başvuru kodu örneği, geliştirmenize hızlı bir başlangıç yapabilecek kaynaklardan biridir. Bir SCIM uç noktası oluşturun ve test edin. Başvuru kodunun parçası olarak sağlanan Postman testlerinin koleksiyonunu kullanın veya sağlanan örnek istekler / yanıtlar üzerinden çalıştırın.

Not

Başvuru kodu, SCIM uç noktanızı oluşturmaya başlamanıza yardımcı olmak için tasarlanmıştır ve "OLDUĞU GIBI" sağlanır. Topluluğun katkıları, kodun oluşturulmasına ve korunmasına yardımcı olabilir.

Çözüm, Microsoft.SCIM ve Microsoft.SCIM.WebHostSample adlı iki projeden oluşur.

Microsoft.SCIM projesi, web hizmetinin SCIM belirtimine uygun bileşenlerini tanımlayan kitaplıktır. Microsoft.SCIM.IProvider arabirimini bildirir, istekler sağlayıcının yöntemlerine yapılan çağrılara çevrilir ve bu çağrılar bir kimlik deposunda çalışacak şekilde programlanabilir.

Breakdown: A request translated into calls to the provider's methods

Microsoft.SCIM.WebHostSample projesi, Boş şablonu temel alan bir ASP.NET Core Web Uygulamasıdır. Örnek kodun tek başına dağıtılmasını, kapsayıcılarda veya Internet Information Services içinde barındırılmasını sağlar. Ayrıca örnek kimlik deposu olarak sınıfları bellekte tutan Microsoft.SCIM.IProvider arabirimini de uygular.

public class Startup
{
    ...
    public IMonitor MonitoringBehavior { get; set; }
    public IProvider ProviderBehavior { get; set; }

    public Startup(IWebHostEnvironment env, IConfiguration configuration)
    {
        ...
        this.MonitoringBehavior = new ConsoleMonitor();
        this.ProviderBehavior = new InMemoryProvider();
    }
    ...

Özel SCIM uç noktası oluşturma

SCIM uç noktasının, kök sertifika yetkilisinin aşağıdaki adlardan biri olduğu bir HTTP adresi ve sunucu kimlik doğrulama sertifikası olmalıdır:

  • CNNIC
  • Comodo
  • CyberTrust
  • DigiCert
  • GeoTrust
  • Globalsign
  • Git Baba
  • Verisign
  • WoSign
  • DST Kök CA X3

.NET Core SDK'sı geliştirme sırasında kullanılan bir HTTPS geliştirme sertifikası içerir. Sertifika, ilk çalıştırma deneyiminin bir parçası olarak yüklenir. ASP.NET Core Web Uygulamasını nasıl çalıştırdığınıza bağlı olarak farklı bir bağlantı noktasını dinler:

  • Microsoft.SCIM.WebHostSample: https://localhost:5001
  • IIS Express: https://localhost:44359

ASP.NET Core'da HTTPS hakkında daha fazla bilgi için şu bağlantıyı kullanın: ASP.NET Core'da HTTPS'yi zorunlu kılma

Uç nokta kimlik doğrulamayı işleme

Microsoft Entra sağlama hizmetinden gelen istekler bir OAuth 2.0 taşıyıcı belirteci içerir. Yetkilendirme sunucusu taşıyıcı belirteci gönderir. Microsoft Entra Id, güvenilir bir yetkilendirme sunucusu örneğidir. Microsoft Entra sağlama hizmetini aşağıdaki belirteçlerden birini kullanacak şekilde yapılandırın:

  • Uzun ömürlü taşıyıcı belirteci. SCIM uç noktası Microsoft Entra Id dışında bir verenden OAuth taşıyıcı belirteci gerektiriyorsa, gerekli OAuth taşıyıcı belirtecini isteğe bağlı Gizli Anahtar Belirteci alanına kopyalayın. Geliştirme ortamında, uç noktadan test belirtecini /scim/token kullanabilirsiniz. Test belirteçleri üretim ortamlarında kullanılmamalıdır.

  • Microsoft Entra taşıyıcı belirteci. Gizli Dizi Belirteci alanı boş bırakılırsa, Microsoft Entra Kimliği, her istekte Microsoft Entra Kimliği'nden verilen bir OAuth taşıyıcı belirteci içerir. Kimlik sağlayıcısı olarak Microsoft Entra Id kullanan uygulamalar bu Microsoft Entra Id tarafından verilen belirteci doğrulayabilir.

    • İstekleri alan uygulama, belirteç verenin beklenen bir Microsoft Entra kiracısı için Microsoft Entra Kimliği olduğunu doğrulamalıdır.
    • Talep iss , belirtecin verenini tanımlar. Örneğin, "iss":"https://sts.windows.net/12345678-0000-0000-0000-000000000000/". Bu örnekte, talep değerinin https://sts.windows.net temel adresi Veren olarak Microsoft Entra Kimliğini tanımlarken, göreli adres kesimi olan 12345678-0000-0000-0000-0000000000000, belirtecin verildiği Microsoft Entra kiracısının benzersiz tanımlayıcısıdır.
    • Belirtecin hedef kitlesi, galerideki uygulamanın Uygulama Kimliği'dir . Tek bir kiracıda kayıtlı uygulamalar SCIM istekleriyle aynı iss talebi alır. Tüm özel uygulamaların uygulama kimliği 8adf8e6e-67b2-4cf2-a259-e3dc5476c621 şeklindedir. Microsoft Entra Kimliği tarafından oluşturulan belirteç yalnızca test için kullanılmalıdır. Üretim ortamlarında kullanılmamalıdır.

Örnek kodda isteklerin kimliği Microsoft.AspNetCore.Authentication.JwtBearer paketi kullanılarak doğrulanır. Aşağıdaki kod, belirtilen bir kiracı için Microsoft Entra Id tarafından verilen taşıyıcı belirteci kullanılarak hizmetin uç noktalarına yönelik isteklerin kimliğinin doğrulandığını zorlar:

public void ConfigureServices(IServiceCollection services)
{
    if (_env.IsDevelopment())
    {
        ...
    }
    else
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
            .AddJwtBearer(options =>
            {
                options.Authority = " https://sts.windows.net/12345678-0000-0000-0000-000000000000/";
                options.Audience = "8adf8e6e-67b2-4cf2-a259-e3dc5476c621";
                ...
            });
    }
    ...
}

public void Configure(IApplicationBuilder app)
{
    ...
    app.UseAuthentication();
    app.UseAuthorization();
    ...
}

Sağlanan Postman testlerini kullanmak ve localhost kullanarak yerel hata ayıklama gerçekleştirmek için taşıyıcı belirteci de gereklidir. Örnek kod, geliştirme aşamasında kimlik doğrulama seçeneklerini değiştirmek ve otomatik olarak imzalanan belirteç kullanımını etkinleştirmek için ASP.NET Core ortamlarını kullanır.

ASP.NET Core'daki birden çok ortam hakkında daha fazla bilgi için bkz . ASP.NET Core'da birden çok ortam kullanma.

Aşağıdaki kod, hizmetin uç noktalarına yönelik isteklerin özel anahtarla imzalanmış taşıyıcı belirteci kullanılarak kimliğinin doğrulandığını zorunlu kılır:

public void ConfigureServices(IServiceCollection services)
{
    if (_env.IsDevelopment())
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters =
                new TokenValidationParameters
                {
                    ValidateIssuer = false,
                    ValidateAudience = false,
                    ValidateLifetime = false,
                    ValidateIssuerSigningKey = false,
                    ValidIssuer = "Microsoft.Security.Bearer",
                    ValidAudience = "Microsoft.Security.Bearer",
                    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("A1B2C3D4E5F6A1B2C3D4E5F6"))
                };
        });
    }
...

Geçerli bir taşıyıcı belirteci almak için Belirteç denetleyicisine bir GET isteği gönderin; GenerateJSONWebToken yöntemi geliştirme için yapılandırılan parametrelerle eşleşen bir belirteç oluşturmakla sorumludur:

private string GenerateJSONWebToken()
{
    // Create token key
    SymmetricSecurityKey securityKey =
        new SymmetricSecurityKey(Encoding.UTF8.GetBytes("A1B2C3D4E5F6A1B2C3D4E5F6"));
    SigningCredentials credentials =
        new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

    // Set token expiration
    DateTime startTime = DateTime.UtcNow;
    DateTime expiryTime = startTime.AddMinutes(120);

    // Generate the token
    JwtSecurityToken token =
        new JwtSecurityToken(
            "Microsoft.Security.Bearer",
            "Microsoft.Security.Bearer",
            null,
            notBefore: startTime,
            expires: expiryTime,
            signingCredentials: credentials);

    string result = new JwtSecurityTokenHandler().WriteToken(token);
    return result;
}

Kullanıcıların sağlamasını ve sağlamasını kaldırmayı işleme

Örnek 1. Eşleşen bir kullanıcı için hizmeti sorgulama

Microsoft Entra Id, microsoft Entra ID'deki bir kullanıcının mailNickname öznitelik değeriyle eşleşen öznitelik değerine sahip externalId bir kullanıcı için hizmeti sorgular. Sorgu, bu örnek gibi bir Köprü Metni Aktarım Protokolü (HTTP) isteği olarak ifade edilir; burada jyoung içinde, Microsoft Entra Id'deki bir kullanıcının mailNickname örneğidir.

Not

Bu yalnızca bir örnektir. Tüm kullanıcıların mailNickname özniteliği olmaz ve kullanıcının sahip olduğu değer dizinde benzersiz olmayabilir. Ayrıca, eşleştirme için kullanılan öznitelik (bu örnekte externalId) Microsoft Entra öznitelik eşlemelerinde yapılandırılabilir.

GET https://.../scim/Users?filter=externalId eq jyoung HTTP/1.1
 Authorization: Bearer ...

Örnek kodda istek, hizmet sağlayıcısının QueryAsync yöntemine yapılan bir çağrıya çevrilir. Bu yöntemin imzası aşağıdadır:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource is defined in 
// Microsoft.SCIM.Schemas.  
// Microsoft.SCIM.IQueryParameters is defined in 
// Microsoft.SCIM.Protocol.  

Task<Resource[]> QueryAsync(IRequest<IQueryParameters> request);

Örnek sorguda, özniteliği için belirli bir değere sahip bir kullanıcı için externalId QueryAsync yöntemine geçirilen bağımsız değişkenlerin değerleri şunlardır:

  • Parametre. AlternateFilters.Count: 1
  • Parametre. AlternateFilters.ElementAt(0). AttributePath: "externalId"
  • Parametre. AlternateFilters.ElementAt(0). ComparisonOperator: ComparisonOperator.Equals
  • Parametre. AlternateFilter.ElementAt(0). ComparisonValue: "jyoung"

Örnek 2. Kullanıcı sağlama

Kullanıcının mailNickname öznitelik değeriyle eşleşen öznitelik externalId değerine sahip bir kullanıcı için SCIM uç noktasına yapılan sorguya verilen yanıt hiçbir kullanıcı döndürmüyorsa, Microsoft Entra Id hizmetin Microsoft Entra Id içindeki kullanıcıya karşılık gelen bir kullanıcı sağlamasını istemektedir. Bu tür bir istek örneği aşağıda verilmişti:

POST https://.../scim/Users HTTP/1.1
Authorization: Bearer ...
Content-type: application/scim+json
{
   "schemas":
   [
     "urn:ietf:params:scim:schemas:core:2.0:User",
     "urn:ietf:params:scim:schemas:extension:enterprise:2.0User"],
   "externalId":"jyoung",
   "userName":"jyoung@testuser.com",
   "active":true,
   "addresses":null,
   "displayName":"Joy Young",
   "emails": [
     {
       "type":"work",
       "value":"jyoung@Contoso.com",
       "primary":true}],
   "meta": {
     "resourceType":"User"},
    "name":{
     "familyName":"Young",
     "givenName":"Joy"},
   "phoneNumbers":null,
   "preferredLanguage":null,
   "title":null,
   "department":null,
   "manager":null}

Örnek kodda istek, hizmet sağlayıcısının CreateAsync yöntemine yapılan bir çağrıya çevrilir. Bu yöntemin imzası aşağıdadır:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource is defined in 
// Microsoft.SCIM.Schemas.  

Task<Resource> CreateAsync(IRequest<Resource> request);

Kullanıcı sağlama isteğinde, kaynak bağımsız değişkeninin değeri sınıfın Microsoft.SCIM.Core2EnterpriseUser bir örneğidir. Bu sınıf kitaplıkta Microsoft.SCIM.Schemas tanımlanır. Kullanıcıyı sağlama isteği başarılı olursa, yönteminin uygulanmasının sınıfının bir örneğini döndürmesi Microsoft.SCIM.Core2EnterpriseUser beklenir. özelliğinin Identifier değeri, yeni sağlanan kullanıcının benzersiz tanımlayıcısına ayarlanır.

Örnek 3. Kullanıcının geçerli durumunu sorgulama

Microsoft Entra Id, belirtilen kullanıcının geçerli durumunu aşağıdaki gibi bir istekle hizmetten istemektedir:

GET ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 HTTP/1.1
Authorization: Bearer ...

Örnek kodda istek, hizmet sağlayıcısının RetrieveAsync yöntemine yapılan bir çağrıya çevrilir. Bu yöntemin imzası aşağıdadır:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.Resource and 
// Microsoft.SCIM.IResourceRetrievalParameters 
// are defined in Microsoft.SCIM.Schemas 

Task<Resource> RetrieveAsync(IRequest<IResourceRetrievalParameters> request);

İstek örneğinde, kullanıcının geçerli durumunu almak için, parametre bağımsız değişkeninin değeri olarak sağlanan nesnenin özelliklerinin değerleri aşağıdaki gibidir:

  • Tanımlayıcı: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Örnek 4. Güncelleştirilecek başvuru özniteliğinin değerini sorgulama

Microsoft Entra Id, kimlik deposundaki geçerli öznitelik değerini güncelleştirmeden önce denetler. Ancak, yalnızca yönetici özniteliği kullanıcılar için ilk denetlenen özniteliktir. Bir kullanıcı nesnesinin yönetici özniteliğinin şu anda belirli bir değere sahip olup olmadığını saptamak için bir istek örneği aşağıda verilmiştir: Örnek kodda istek, hizmet sağlayıcısının QueryAsync yöntemine yapılan bir çağrıya çevrilir. Parametre bağımsız değişkeninin değeri olarak sağlanan nesnenin özelliklerinin değeri aşağıdaki gibidir:

  • Parametre. AlternateFilters.Count: 2
  • Parametre. AlternateFilters.ElementAt(x). AttributePath: "ID"
  • Parametre. AlternateFilters.ElementAt(x). ComparisonOperator: ComparisonOperator.Equals
  • Parametre. AlternateFilter.ElementAt(x). ComparisonValue: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • Parametre. AlternateFilters.ElementAt(y). AttributePath: "manager"
  • Parametre. AlternateFilters.ElementAt(y). ComparisonOperator: ComparisonOperator.Equals
  • Parametre. AlternateFilter.ElementAt(y). ComparisonValue: "2819c223-7f76-453a-919d-413861904646"
  • Parametre. RequestedAttributePaths.ElementAt(0): "ID"
  • Parametre. SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

x dizininin değeri ve 0 y dizininin değeri olabilir 1. Veya x değeri, 1 y değeri olabilir 0. Filtre sorgusu parametresinin ifadelerinin sırasına bağlıdır.

Örnek 5. Bir kullanıcıyı güncelleştirmek için Microsoft Entra Id'den SCIM uç noktasına istek

Bir kullanıcıyı güncelleştirmek için Microsoft Entra Id'den SCIM uç noktasına yapılan istek örneği aşağıda verilmişti:

PATCH ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 HTTP/1.1
Authorization: Bearer ...
Content-type: application/scim+json
{
    "schemas": 
    [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations":
    [
      {
        "op":"Add",
        "path":"manager",
        "value":
          [
            {
              "$ref":"http://.../scim/Users/2819c223-7f76-453a-919d-413861904646",
              "value":"2819c223-7f76-453a-919d-413861904646"}]}]}

Örnek kodda istek, hizmet sağlayıcısının UpdateAsync yöntemine yapılan bir çağrıya çevrilir. Bu yöntemin imzası aşağıdadır:

// System.Threading.Tasks.Tasks and 
// System.Collections.Generic.IReadOnlyCollection<T>  // are defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in
// Microsoft.SCIM.Service.
// Microsoft.SCIM.IPatch, 
// is defined in Microsoft.SCIM.Protocol. 

Task UpdateAsync(IRequest<IPatch> request);

İstek örneğinde, bir kullanıcıyı güncelleştirmek için düzeltme eki bağımsız değişkeninin değeri olarak sağlanan nesne şu özellik değerlerine sahiptir:

Bağımsız değişken Değer
ResourceIdentifier.Identifier "54D382A4-2050-4C03-94D1-E769F1D15682"
ResourceIdentifier.SchemaIdentifier urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
(PatchRequest as PatchRequest2).Operations.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).OperationName OperationName.Add
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Path.AttributePath Yönetici
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.Count 1
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Reference http://.../scim/Users/2819c223-7f76-453a-919d-413861904646
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Value 2819c223-7f76-453a-919d-413861904646

Örnek 6. Kullanıcının sağlamasını kaldırma

ScIM uç noktasının önünde yer alan bir kimlik deposundan bir kullanıcının sağlamasını kaldırmak için Microsoft Entra Id aşağıdaki gibi bir istek gönderir:

DELETE ~/scim/Users/54D382A4-2050-4C03-94D1-E769F1D15682 HTTP/1.1
Authorization: Bearer ...

Örnek kodda istek, hizmet sağlayıcısının DeleteAsync yöntemine yapılan bir çağrıya çevrilir. Bu yöntemin imzası aşağıdadır:

// System.Threading.Tasks.Tasks is defined in mscorlib.dll.  
// Microsoft.SCIM.IRequest is defined in 
// Microsoft.SCIM.Service.  
// Microsoft.SCIM.IResourceIdentifier, 
// is defined in Microsoft.SCIM.Protocol. 

Task DeleteAsync(IRequest<IResourceIdentifier> request);

resourceIdentifier bağımsız değişkeninin değeri olarak sağlanan nesne, bir kullanıcının sağlamasını kaldırma isteği örneğinde şu özellik değerlerine sahiptir:

  • ResourceIdentifier.Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"
  • ResourceIdentifier.SchemaIdentifier: urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

SCIM uç noktanızı Microsoft Entra sağlama hizmetiyle tümleştirme

Microsoft Entra Id, SCIM 2.0 protokolünün belirli bir profilini uygulayan uygulamalara atanan kullanıcıları ve grupları otomatik olarak sağlamak üzere yapılandırılabilir. Profilin özellikleri Microsoft Entra SCIM uygulamasını anlama bölümünde belgelenmiştir.

Bu gereksinimlerle uyumluluk bildirimleri için uygulama sağlayıcınıza veya uygulama sağlayıcınızın belgelerine bakın.

Önemli

Microsoft Entra SCIM uygulaması, Microsoft Entra ID ile hedef uygulama arasında kullanıcıları sürekli eşitlenmiş durumda tutmak için tasarlanan ve çok özel bir standart işlem kümesi uygulayan Microsoft Entra kullanıcı sağlama hizmetinin üzerine kurulmuştur. Microsoft Entra sağlama hizmetinin davranışını anlamak için bu davranışları anlamak önemlidir. Daha fazla bilgi için Sağlama döngüleri: Sağlama nasıl çalışır? bölümündeki başlangıç ve artımlı bölümüne bakın.

Başlarken

İpucu

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

Bu makalede açıklanan SCIM profilini destekleyen uygulamalar, Microsoft Entra uygulama galerisindeki "galeri dışı uygulama" özelliği kullanılarak Microsoft Entra Kimliği'ne bağlanabilir. Bağlandıktan sonra Microsoft Entra Id bir eşitleme işlemi çalıştırır. İşlem her 40 dakikada bir çalışır. İşlem, atanan kullanıcılar ve gruplar için uygulamanın SCIM uç noktasını sorgular ve bunları atama ayrıntılarına göre oluşturur veya değiştirir.

SCIM'yi destekleyen bir uygulamayı bağlamak için:

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

  2. Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.

  3. Galeriden eklenen uygulamalar da dahil olmak üzere tüm yapılandırılmış uygulamaların listesi gösterilir.

  4. + Yeni uygulama+ Kendi uygulamanızı> oluşturun'u seçin.

  5. Uygulamanız için bir ad girin, "galeride bulamadığınız diğer tüm uygulamaları tümleştirin" seçeneğini belirleyin ve uygulama nesnesi oluşturmak için Ekle'yi seçin. Yeni uygulama, kurumsal uygulamalar listesine eklenir ve uygulama yönetimi ekranında açılır.

    Aşağıdaki ekran görüntüsünde Microsoft Entra uygulama galerisi gösterilmektedir:

    Screenshot shows the Microsoft Entra application gallery.

  6. Uygulama yönetimi ekranında sol panelde Sağlama'yı seçin.

  7. Sağlama Modu menüsünde Otomatik'i seçin.

    Aşağıdaki ekran görüntüsünde, Microsoft Entra yönetim merkezinde sağlama ayarlarını yapılandırma gösterilmektedir:

    Screenshot of app provisioning page in the Microsoft Entra admin center.

  8. Kiracı URL'si alanına uygulamanın SCIM uç noktasının URL'sini girin. Örnek: https://api.contoso.com/scim/

  9. SCIM uç noktası Microsoft Entra Id dışında bir verenden OAuth taşıyıcı belirteci gerektiriyorsa, gerekli OAuth taşıyıcı belirtecini isteğe bağlı Gizli Anahtar Belirteci alanına kopyalayın. Bu alan boş bırakılırsa, Microsoft Entra Id her istekle birlikte Microsoft Entra Id'den verilen bir OAuth taşıyıcı belirteci içerir. Kimlik sağlayıcısı olarak Microsoft Entra Id kullanan uygulamalar bu Microsoft Entra Id tarafından verilen belirteci doğrulayabilir.

    Not

    Bu alanı boş bırakmak ve Microsoft Entra Id tarafından oluşturulan bir belirteci kullanmak önerilmez. Bu seçenek öncelikli olarak test amacıyla kullanılabilir.

  10. Microsoft Entra ID'nin SCIM uç noktasına bağlanmayı denemesini sağlamak için Test Bağlan ion'ı seçin. Deneme başarısız olursa hata bilgileri görüntülenir.

    Not

    Test Bağlan ion, Microsoft Entra yapılandırmasında seçilen eşleşen özellik olarak rastgele bir GUID kullanarak mevcut olmayan bir kullanıcı için SCIM uç noktasını sorgular. Beklenen doğru yanıt HTTP 200 Tamam ve boş bir SCIM ListResponse iletisi.

  11. Uygulamaya bağlanma girişimleri başarılı olursa, yönetici kimlik bilgilerini kaydetmek için Kaydet'i seçin.

  12. Eşlemeler bölümünde iki seçilebilir öznitelik eşleme kümesi vardır: biri kullanıcı nesneleri ve biri grup nesneleri için. Microsoft Entra Id'den uygulamanıza eşitlenen öznitelikleri gözden geçirmek için her birini seçin. Eşleştirme özellikleri olarak seçilen öznitelikler, güncelleştirme işlemleri için uygulamanızdaki kullanıcı ve gruplarla eşleştirmek için kullanılır. Değişiklikleri kaydetmek için Kaydet'i seçin.

    Not

    İsteğe bağlı olarak "gruplar" eşlemesini devre dışı bırakarak grup nesnelerinin eşitlenmesini devre dışı bırakabilirsiniz.

  13. Ayarlar altında Kapsam alanı, hangi kullanıcıların ve grupların eşitleneceğini tanımlar. Kullanıcılar ve gruplar sekmesinde yalnızca atanan kullanıcıları ve grupları eşitlemek için Yalnızca atanan kullanıcıları ve grupları eşitle (önerilir) seçeneğini belirleyin.

  14. Yapılandırmanız tamamlandıktan sonra Sağlama Durumu'nu Açık olarak ayarlayın.

  15. Microsoft Entra sağlama hizmetini başlatmak için Kaydet'i seçin.

  16. Yalnızca atanan kullanıcıları ve grupları eşitliyorsanız (önerilir), Kullanıcılar ve gruplar sekmesini seçin. Ardından, eşitlemek istediğiniz kullanıcıları veya grupları atayın.

İlk döngü başladıktan sonra, ilerleme durumunu izlemek için sol paneldeki Sağlama günlükleri'ni seçebilirsiniz. Bu işlem, uygulamanızdaki sağlama hizmeti tarafından gerçekleştirilen tüm eylemleri gösterir. Microsoft Entra sağlama günlüklerini okuma hakkında daha fazla bilgi için bkz . Otomatik kullanıcı hesabı sağlamada raporlama.

Not

İlk döngünün gerçekleştirilmesi, hizmet çalıştığı sürece yaklaşık 40 dakikada bir gerçekleşen sonraki eşitlemelerden daha uzun sürer.

Birden fazla kiracı tarafından kullanılan bir uygulama oluşturuyorsanız, uygulamayı Microsoft Entra uygulama galerisinde kullanılabilir hale getirin. Kuruluşların uygulamayı bulması ve sağlamayı yapılandırması kolaydır. Uygulamanızı Microsoft Entra galerisinde yayımlamak ve sağlamayı başkalarının kullanımına açmak kolaydır. Buradaki adımlara göz atın. Microsoft, uygulamanızı galeriyle tümleştirmek, uç noktanızı test etmek ve müşteriler için ekleme belgelerini yayınlamak için sizinle birlikte çalışır.

Uygulamanızı hızla eklemek ve müşterilerin sorunsuz bir dağıtım deneyimine sahip olması için denetim listesini kullanın. Bilgiler galeriye eklenirken sizden toplanır.

  • SCIM 2.0 kullanıcı ve grup uç noktasını destekleme (Yalnızca bir tane gereklidir, ancak her ikisi de önerilir)
  • Kullanıcıların ve grupların gecikme olmadan sağlanmasını ve sağlamasını kaldırmasını sağlamak için kiracı başına saniyede en az 25 istek desteği (Gerekli)
  • Galeri ekleme sonrasında müşterilere yol göstermek için mühendislik ve destek kişileri oluşturma (Gerekli)
  • 3 Uygulamanız için süresi dolmayan test kimlik bilgileri (Gerekli)
  • Örnekte açıklandığı gibi OAuth yetkilendirme kodu verilmesini veya uzun ömürlü bir belirteci destekleme (Gerekli)
  • OIDC uygulamalarında en az 1 rol (özel veya varsayılan) tanımlanmış olmalıdır
  • Galeri ekleme sonrasında müşterileri desteklemek için bir mühendislik ve destek noktası oluşturma (Gerekli)
  • Şema bulma desteği (gerekli)
  • Tek bir PATCH ile birden çok grup üyeliğini güncelleştirme desteği
  • SCIM uç noktanızı genel olarak belgele

SCIM belirtimi, kimlik doğrulaması ve yetkilendirme için SCIM'e özgü bir şema tanımlamaz ve mevcut endüstri standartlarının kullanımına dayanır.

Yetkilendirme yöntemi Avantajlar Dezavantajlar Destek
Kullanıcı adı ve parola (Microsoft Entra Id tarafından önerilmez veya desteklenmez) Uygulanması kolay Güvensiz - Pa$$word önemli değil Yeni galeri veya galeri dışı uygulamalar için desteklenmez.
Uzun ömürlü taşıyıcı belirteci Uzun süreli belirteçler, bir kullanıcının mevcut olmasını gerektirmez. Sağlamayı ayarlarken yöneticilerin kullanması kolaydır. Uzun süreli belirteçleri e-posta gibi güvenli olmayan yöntemler kullanmadan bir yöneticiyle paylaşmak zor olabilir. Galeri uygulamaları ve galeri dışı uygulamalar için desteklenir.
OAuth yetkilendirme kodu verme Erişim belirteçlerinin ömrü parolalardan daha kısadır ve uzun süreli taşıyıcı belirteçlerin sahip olmadığı otomatik yenileme mekanizmasına sahiptir. İlk yetkilendirme sırasında gerçek bir kullanıcı mevcut olmalı ve sorumluluk düzeyi eklenmelidir. Bir kullanıcının mevcut olmasını gerektirir. Kullanıcı kuruluştan ayrılırsa belirteç geçersizdir ve yetkilendirmenin yeniden tamamlanması gerekir. Galeri uygulamaları için desteklenir, ancak galeri dışı uygulamalar için desteklenmez. Ancak, kullanıcı arabiriminde kısa vadeli test amacıyla gizli belirteç olarak bir erişim belirteci sağlayabilirsiniz. Galeri dışında OAuth kodu verme desteği, galeri uygulamasında yapılandırılabilir kimlik doğrulaması /belirteç URL'leri desteğine ek olarak kapsamımızda yer almaktadır.
OAuth istemci kimlik bilgileri verme Erişim belirteçlerinin ömrü parolalardan daha kısadır ve uzun süreli taşıyıcı belirteçlerin sahip olmadığı otomatik yenileme mekanizmasına sahiptir. Hem yetkilendirme kodu verme hem de istemci kimlik bilgileri verme aynı tür erişim belirteci oluşturur, bu nedenle bu yöntemler arasında geçiş API'ye saydamdır. Sağlama otomatikleştirilebilir ve kullanıcı etkileşimi olmadan yeni belirteçler sessizce istenebilir. Galeri uygulamaları için desteklenir, ancak galeri dışı uygulamalar için desteklenmez. Ancak, kullanıcı arabiriminde kısa vadeli test amacıyla gizli belirteç olarak bir erişim belirteci sağlayabilirsiniz. Galeri olmayanlarda OAuth istemci kimlik bilgileri verme desteği kapsamımızdadır.

Not

Microsoft Entra sağlama yapılandırması özel uygulama kullanıcı arabiriminde belirteç alanının boş bırakılması önerilmez. Oluşturulan belirteç öncelikli olarak test amacıyla kullanılabilir.

OAuth kodu verme akışı

Sağlama hizmeti yetkilendirme kodu verme işlemini destekler ve uygulamanızı galeride yayımlama isteğinizi gönderdikten sonra ekibimiz aşağıdaki bilgileri toplamak için sizinle birlikte çalışır:

  • Yetkilendirme URL'si, kullanıcı aracısı yeniden yönlendirmesi yoluyla kaynak sahibinden yetkilendirme almak için istemci tarafından bir URL. Kullanıcı, erişimi yetkilendirmek için bu URL'ye yönlendirilir.

  • Belirteç değişim URL'si, genellikle istemci kimlik doğrulaması ile bir erişim belirteci için yetkilendirme iznini değiştirmek için istemcinin url'si.

  • İstemci kimliği, yetkilendirme sunucusu kayıtlı istemciye istemci tanımlayıcısı verir. Bu, istemci tarafından sağlanan kayıt bilgilerini temsil eden benzersiz bir dizedir. İstemci tanımlayıcısı gizli dizi değildir; kaynak sahibine sunulur ve istemci kimlik doğrulaması için tek başına kullanılmamalıdır .

  • İstemci gizli dizisi, yetkilendirme sunucusu tarafından oluşturulan ve yalnızca yetkilendirme sunucusu tarafından bilinen benzersiz bir değer olması gereken bir gizli dizidir.

Not

Yetkilendirme URL'si ve Belirteç değişim URL'si şu anda kiracı başına yapılandırılamaz.

Not

OAuth v1, istemci gizli dizisinin açığa çıkarma nedeniyle desteklenmiyor. OAuth v2 desteklenir.

Kapalı kalma süresi olmadan kolay yenileme için birden çok gizli diziyi desteklemeniz önerilir ancak gerekli değildir.

OAuth kod verme akışını ayarlama

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

  2. Kimlik>Uygulamaları>Kurumsal uygulamaları>Uygulama>Sağlama'yagöz atın ve Yetki ver'i seçin.

  3. Microsoft Entra yönetim merkezinde en az Uygulama Yönetici istrator olarak oturum açın.

  4. Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.

  5. Uygulamanızı seçin ve Sağlama'ya gidin.

  6. Yetkilendir'i seçin.

    1. Kullanıcılar Yetkilendirme URL'sine yönlendirilir (üçüncü taraf uygulaması için oturum açma sayfası).

    2. Yönetici, üçüncü taraf uygulamaya kimlik bilgileri sağlar.

    3. Üçüncü taraf uygulaması kullanıcıyı geri yönlendirir ve verme kodunu sağlar

    4. Sağlama Hizmeti belirteç URL'sini çağırır ve verme kodunu sağlar. Üçüncü taraf uygulama erişim belirteci, yenileme belirteci ve süre sonu tarihiyle yanıt verir

  7. Sağlama döngüsü başladığında, hizmet geçerli erişim belirtecinin geçerli olup olmadığını denetler ve gerekirse yeni bir belirteçle değiştirir. Erişim belirteci uygulamaya yapılan her istekte sağlanır ve isteğin geçerliliği her istekten önce denetlener.

Not

Galeri dışı uygulamalarda OAuth kurulumu mümkün olmasa da, yetkilendirme sunucunuzdan el ile bir erişim belirteci oluşturabilir ve bunu galeri dışı bir uygulamaya gizli belirteç olarak giriş yapabilirsiniz. Bu, OAuth kod verme işlemini destekleyen uygulama galerisine eklemeden önce SCIM sunucunuzun Microsoft Entra sağlama hizmetiyle uyumluluğunu doğrulamanızı sağlar.

Uzun ömürlü OAuth taşıyıcı belirteçleri: Uygulamanız OAuth yetkilendirme kodu verme akışını desteklemiyorsa, bunun yerine bir yöneticinin sağlama tümleştirmesini ayarlamak için kullanabileceği uzun süreli bir OAuth taşıyıcı belirteci oluşturun. Belirtecin kalıcı olması gerekir, aksi halde belirtecin süresi dolduğunda sağlama işi karantinaya alınır .

Daha fazla kimlik doğrulaması ve yetkilendirme yöntemi için UserVoice'ta bize bildirin.

Ortak tümleştirmemizin farkındalığını ve talebini artırmak için mevcut belgelerinizi güncelleştirmenizi ve pazarlama kanallarınızda tümleştirmeyi güçlendirmenizi öneririz. Başlatmayı desteklemek için aşağıdaki denetim listesini tamamlamanızı öneririz:

  • Satış ve müşteri destek ekiplerinizin farkında, hazır ve tümleştirme özellikleriyle konuşamaya hazır olduğundan emin olun. Ekiplerinizi bilgilendirin, onlara SSS sağlayın ve satış malzemelerinizle tümleştirmeyi dahil edin.
  • Ortak tümleştirmeyi, avantajları ve nasıl kullanmaya başlandığını açıklayan bir blog gönderisi veya basın yayını oluşturma. Örnek: Imprivata ve Microsoft Entra Press Release
  • Tümleştirmeyi müşterilerinize tanıtmak için Twitter, Facebook veya LinkedIn gibi sosyal medyanızdan yararlanın. Gönderinizi retweetleyebilmemiz için Entra Kimliğini eklediğinizden @Microsoft emin olun. Örnek: Imprivata Twitter Gönderisi
  • Pazarlama sayfalarınızı/web sitenizi (tümleştirme sayfası, iş ortağı sayfası, fiyatlandırma sayfası vb.) oluşturarak veya güncelleştirerek ortak tümleştirmenin kullanılabilirliğini dahil edin. Örnek: Pingboard tümleştirme Sayfası, Smartsheet tümleştirme sayfası, Monday.com fiyatlandırma sayfası
  • Müşterilerin nasıl başlayabileceğini gösteren bir yardım merkezi makalesi veya teknik belge oluşturun. Örnek: Envoy + Microsoft Entra tümleştirmesi.
  • Müşteri iletişiminiz (aylık bültenler, e-posta kampanyaları, ürün sürüm notları) aracılığıyla müşterileri yeni tümleştirme konusunda uyarın.

Sonraki adımlar