Öğ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 Connect 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.
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.
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.
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.
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.
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.
[İ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.
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:
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.
Özniteliklerin çekirdek kullanıcı şemasında mı yoksa kurumsal kullanıcı şemasında mı 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
tag
uzantı örneğine bakın.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 | kullanıcı adı | userPrincipalName |
firstName | name.givenName | givenName |
lastName | name.familyName | soyadı |
workMail | email[type eq "work"].value | Posta |
müdür | müdür | müdür |
etiket | urn:ietf:params:scim:schemas:extension:CustomExtensionName:2.0:User:tag |
extensionAttribute1 |
durum | etkin | 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/00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
}
}
Not
Uygulama için gerekli özniteliklere ek olarak, JSON gösterimi gerekli id
, externalId
ve 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 | etkin |
bölüm | urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department |
displayName | displayName |
employeeId | 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 | email[type eq "work"].value |
mailNickname | externalId |
müdür | urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:manager |
cep | 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 |
soyadı | name.familyName |
telefon numarası | phoneNumbers[type eq "work"].value |
user-PrincipalName | kullanıcı adı |
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:
Bitiş noktası | Açıklama |
---|---|
/Kullanıcı | Kullanıcı nesnesinde CRUD işlemleri gerçekleştirme. |
/Grup | 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ı , title ve emails kullanırken, başka bir hizmet sağlayıcısı name , title ve phoneNumbers içerebilirname . Şemalar uç noktası, desteklenen özniteliklerin bulunmasına olanak tanır. |
/Yığın | 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 username externalId ile sorgulanır ve grupları ile displayName sorgulanı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ışındaListResponse
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 PATCH
op
işlem değerlerinde büyük/küçük harfe duyarlı eşleşmeye gerek yoktur. Microsoft Entra Id, değerleriniop
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ğlantısı 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
ListResponse
olmalı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.
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:
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ı Oluştur (Yanıt İste / )
- Kullanıcı Al (İstek / Yanıtı)
- Sorguya göre Kullanıcı Al (Yanıt İste / )
- Sorguya göre Kullanıcı Al - Sıfır sonuç (İstek / Yanıtı)
- Kullanıcıyı Güncelleştirme [Çok değerli özellikler] (İstek / Yanıtı)
- Kullanıcıyı Güncelleştirme [Tek değerli özellikler] (İstek / Yanıtı)
- Kullanıcıyı Devre Dışı Bırak (Yanıt İste / )
- Kullanıcıyı Sil (Yanıt İste / )
- Grup Oluştur (İstek / Yanıtı)
- Get Group (İstek / Yanıtı)
- displayName ile Grupla (Yanıt İste / )
- Güncelleştirme Grubu [Üye olmayan öznitelikler] (İstek / Yanıtı)
- Güncelleştirme Grubu [Üye Ekle] (İstek / Yanıtı)
- Güncelleştirme Grubu [Üyeleri Kaldır] (İstek / Yanıtı)
- Grubu Sil (İstek / Yanıtı)
Kullanıcı İşlemleri
- Kullanıcıları sorgulamak için veya
emails[type eq "work"]
özniteliklerini kullanınuserName
.
Kullanıcı Oluştur
İstek
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_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"active": true,
"emails": [{
"primary": true,
"type": "work",
"value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com"
}],
"meta": {
"resourceType": "User"
},
"name": {
"formatted": "givenName familyName",
"familyName": "familyName",
"givenName": "givenName"
},
"roles": []
}
Yanıt
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_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"name": {
"formatted": "givenName familyName",
"familyName": "familyName",
"givenName": "givenName",
},
"active": true,
"emails": [{
"value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
"type": "work",
"primary": true
}]
}
Kullanıcı Al
İstek
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_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"name": {
"formatted": "givenName familyName",
"familyName": "familyName",
"givenName": "givenName",
},
"active": true,
"emails": [{
"value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
"type": "work",
"primary": true
}]
}
İstek
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
İstek
GET /Users?filter=userName eq "Test_User_00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
Yanıt
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_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"name": {
"familyName": "familyName",
"givenName": "givenName"
},
"active": true,
"emails": [{
"value": "Test_User_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
"type": "work",
"primary": true
}]
}],
"startIndex": 1,
"itemsPerPage": 20
}
Sorguya göre kullanıcı alma - Sıfır sonuç
İstek
GET /Users?filter=userName eq "mevcut olmayan kullanıcı"
Yanıt
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]
İstek
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"
}
]
}
Yanıt
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_00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"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]
İstek
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"
}]
}
Yanıt
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_11bb11bb-cc22-dd33-ee44-55ff55ff55ff@testuser.com",
"type": "work",
"primary": true
}]
}
Kullanıcıyı Devre Dışı Bırak
İstek
PATCH /Users/5171a35d82074e068ce2 HTTP/1.1
{
"Operations": [
{
"op": "Replace",
"path": "active",
"value": false
}
],
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
]
}
Yanıt
{
"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ı Sil
İstek
DELETE /Users/5171a35d82074e068ce2 HTTP/1.1
Yanıt
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ştur
İstek
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"
}
}
Yanıt
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
İstek
GET /Groups/40734ae655284ad3abcc?excludedAttributes=members HTTP/1.1
Yanıt
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
İstek
GET /Groups?excludedAttributes=members&filter=displayName eq "displayName" HTTP/1.1
Yanıt
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]
İstek
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"
}]
}
Yanıt
HTTP/1.1 204 İçerik Yok
Grubu Güncelleştirme [Üye Ekle]
İstek
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"
}]
}]
}
Yanıt
HTTP/1.1 204 İçerik Yok
Grubu Güncelleştirme [Üyeleri Kaldır]
İstek
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"
}]
}]
}
Yanıt
HTTP/1.1 204 İçerik Yok
Grubu Sil
İstek
DELETE /Groups/cdb1ce18f65944079d37 HTTP/1.1
Yanıt
HTTP/1.1 204 İçerik Yok
Şema bulma
Şemayı bulma
İstek
GET /Schemas
Yanıt
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 uygulamanıza gelen trafiğe izin vermek için etiketi altında listelenen AzureActiveDirectory
IP aralıklarını 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 edinebilirsiniz.
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, ardından sağlanan örnek istekleri / yanıtları çalıştırarak test edin.
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.
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/aaaabbbb-0000-cccc-1111-dddd2222eeee/"
. Bu örnekte, talep değerininhttps://sts.windows.net
temel adresi, veren olarak Microsoft Entra Kimliğini tanımlarken, göreli adres kesimi olan aaaabbbb-0000-cccc-1111-dddd2222eeeee, 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/aaaabbbb-0000-cccc-1111-dddd2222eeee/";
options.Audience = "8adf8e6e-67b2-4cf2-a259-e3dc5476c621";
...
});
}
...
}
public void Configure(IApplicationBuilder app)
{
...
app.UseAuthentication();
app.UseAuthorization();
...
}
Ö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/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 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ı: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1"
- 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: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1"
- Parametre. AlternateFilters.ElementAt(y). AttributePath: "manager"
- Parametre. AlternateFilters.ElementAt(y). ComparisonOperator: ComparisonOperator.Equals
- Parametre. AlternateFilter.ElementAt(y). ComparisonValue: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
- 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/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 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/00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"value":"00aa00aa-bb11-cc22-dd33-44ee44ee44ee"}]}]}
Ö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:
Tartışma | Değer |
---|---|
ResourceIdentifier.Identifier |
"a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1e1e1" |
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 |
Müdür |
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.Count |
1 |
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Reference |
http://.../scim/Users/00aa00aa-bb11-cc22-dd33-44ee44ee44ee |
(PatchRequest as PatchRequest2).Operations.ElementAt(0).Value.ElementAt(0).Value |
00aa00aa-bb11-cc22-dd33-44ee44ee44ee |
Ö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/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1 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: "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1e1"
- 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
Bahşiş
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:
Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.
Galeriden eklenen uygulamalar da dahil olmak üzere tüm yapılandırılmış uygulamaların listesi gösterilir.
+ Yeni uygulama+ Kendi uygulamanızı> oluşturun'u seçin.
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:
Uygulama yönetimi ekranında sol panelde Sağlama'yı seçin.
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:
Kiracı URL'si alanına uygulamanın SCIM uç noktasının URL'sini girin. Örnek:
https://api.contoso.com/scim/
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.
Microsoft Entra ID'nin SCIM uç noktasına bağlanmayı denemesini sağlamak için Bağlantıyı Sına'yı seçin. Deneme başarısız olursa hata bilgileri görüntülenir.
Not
Test Bağlantısı , 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.
Uygulamaya bağlanma girişimleri başarılı olursa, yönetici kimlik bilgilerini kaydetmek için Kaydet'i seçin.
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.
Ayarlar'ın 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.
Yapılandırmanız tamamlandıktan sonra Sağlama Durumu'nu Açık olarak ayarlayın.
Microsoft Entra sağlama hizmetini başlatmak için Kaydet'i seçin.
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.
Uygulamanızı Microsoft Entra uygulama galerisinde yayımlama
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.
Galeri ekleme denetim listesi
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
Uygulama galerisinde bağlayıcı sağlama yetkisi
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 | Profesyonel | Eksi -lerini | 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.
OAuth Code Grant akışını kullanırken, bir sağlama örneği ayarlarken her müşterinin kendi istemci kimliğini ve gizli dizisini göndereceği bir modeli desteklemeniz gerekir. Tek bir uygulama genelinde istemci kimliği/İstemci Gizli Anahtarı çifti desteklenmez.
OAuth kod verme akışını ayarlama
Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamaları>Uygulama>Sağlama'ya göz atın ve Yetki ver'i seçin.
Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
Kimlik>Uygulamaları>Kurumsal uygulamaları'na göz atın.
Uygulamanızı seçin ve Sağlama'ya gidin.
Yetki ver'i seçin.
Kullanıcılar Yetkilendirme URL'sine yönlendirilir (üçüncü taraf uygulaması için oturum açma sayfası).
Yönetici, üçüncü taraf uygulamaya kimlik bilgileri sağlar.
Üçüncü taraf uygulaması kullanıcıyı geri yönlendirir ve verme kodunu sağlar
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
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.
Galeri pazara çıkış denetim listesi
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
- Müşterilerinizle tümleştirmeyi teşvik etmek için X, Facebook veya LinkedIn gibi sosyal medyanızdan yararlanın. Gönderinizi retweetleyebilmemiz için Entra Kimliğini eklediğinizden @Microsoft emin olun. Örnek: Imprivata X Post
- Pazarlama sayfalarınızı/web sitenizi (tümleştirme sayfası, iş ortağı sayfası, fiyatlandırma sayfası vb.) ortak tümleştirmenin kullanılabilirliğini içerecek şekilde oluşturun veya güncelleştirin. Ö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
Örnek SCIM uç noktasıgeliştirme SaaS uygulamalarınakullanıcı sağlamayı ve sağlamayı kaldırmayı otomatikleştirme Kullanıcı sağlamaiçin öznitelik eşlemelerini özelleştirme Öznitelik eşlemeleri için yazma ifadeleriKullanıcı sağlamaiçin kapsam filtreleri Hesap sağlama bildirimleriSaaS uygulamalarını tümleştirmeye yönelik öğreticilerin listesi