Öğretici: Azure Active Directory'de BIR SCIM uç noktası için sağlama geliştirme ve planlama

Uygulama geliştiricisi olarak, uygulamanızla Azure Active Directory (Azure AD) 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'sini kullanabilirsiniz. Bu makalede scim uç noktası oluşturma ve Azure AD sağlama hizmetiyle tümleştirme işlemleri 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 ile bir uygulamaya Azure AD sağlama

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 ortak 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ı girişi 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 kullanmak yerine SCIM standardına uyan uygulamalar, önceden var olan istemcilerden, araçlardan ve kodlardan anında yararlanabilir.

SCIM 2.0'da (RFC 7642, 7643, 7644) tanımlanan yönetim için standart kullanıcı nesnesi şeması ve rest API'leri, kimlik sağlayıcılarının ve uygulamaların birbiriyle 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, Azure AD 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 - Uygulamanın nesnelerini ve özniteliklerini belirleyerek bunların Azure AD SCIM uygulaması tarafından desteklenen kullanıcı ve grup şemasıyla nasıl eşleneceğini belirleyin.

  2. Azure AD SCIM uygulamasını anlama - SCIM protokol isteği işleme ve yanıtlarınızı modellemek için Azure AD Sağlama Hizmeti'nin nasıl uygulandığını anlama.

  3. SCIM uç noktası oluşturma - Uç noktanın Azure AD sağlama hizmetiyle tümleştirilmesi 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 kullanmanızı öneririz.

  4. SCIM uç noktanızı Azure AD Sağlama Hizmeti ile tümleştirin. Kuruluşunuz, Azure AD tarafından desteklenen bir SCIM 2.0 profilini uygulamak için üçüncü taraf bir uygulama kullanıyorsa, kullanıcı ve grupların hem sağlamasını hem de sağlamasını kaldırmayı hızla otomatikleştirebilirsiniz.

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

ScIM uç noktasını Azure AD ile tümleştirmek için gerekli adımları gösteren diyagram.

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.) belirleyerek 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 Azure AD 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şletmek için bir modele sahip bir kurumsal kullanıcı uzantısı tanımlar.

Örneğin, uygulamanız hem kullanıcının e-postasını hem de kullanıcının yöneticisini gerektiriyorsa, 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). Öznitelikler, 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 gereklidir.

  2. Ö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. Kullanıcıya kullanıcı sağlamaya tagizin veren bir uzantı için aşağıdaki örniğe bakın.

  3. SCIM özniteliklerini Azure AD kullanıcı öznitelikleriyle eşleyin. SCIM uç noktanızda tanımladığınız özniteliklerden birinin Azure AD kullanıcı şemasında net bir karşılığı yoksa, kiracı yöneticisine şemasını genişletmesi için yol gösterir veya özellik için tags aşağıda gösterildiği gibi bir uzantı özniteliği kullanın.

Aşağıdaki tabloda gerekli özniteliklerin bir örneği listelemektedir:

Gerekli uygulama özniteliği Eşlenen SCIM özniteliği Eşlenmiş Azure AD özniteliği
Loginname userName userPrincipalName
firstName name.givenName givenName
lastName name.familyName Soyadı
workMail email[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.

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

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

Azure AD kullanıcısı urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
IsSoftDeleted active
bölüm 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
mobil 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:

Azure AD 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 Azure AD özniteliklerinin 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ştirin.
/Ş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ı name, titleve emailskullanırken, başka bir hizmet sağlayıcısı name, titleve phoneNumbersiçerebilir. Şema 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 kaynaklar ve kimlik doğrulama yöntemi gibi desteklenen SCIM standardının özellikleri hakkında ayrıntılı bilgi sağlar.
/ResourceTypes Her kaynakla ilgili meta verileri belirtir.

Not

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

Azure AD SCIM uygulamasını anlama

ScIM 2.0 kullanıcı yönetimi API'sini desteklemek için, bu bölümde Azure AD Sağlama Hizmeti'nin nasıl uygulandığı açıklanır ve SCIM protokol isteği işleme ve yanıtlarınızın nasıl modellendiği gösterilir.

Önemli

Azure AD 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. Azure AD 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ıları ve isteğe bağlı olarak grupları 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 tarafından id alınır ve ve ve usernameexternalIdgrupları tarafından 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ı etkin olsa da olmasa da kullanıcı nesnesi istekte döndürülmelidir. Kullanıcının döndürülmemesi gereken tek zaman, uygulamadan sabit bir şekilde silindiği zamandır.
/Schemas uç noktasını destekleme Bölüm 7 Şema bulma uç noktası, daha fazla öznitelik bulmak için kullanılır.
Uygulamanıza Azure AD kimlik doğrulaması ve yetkilendirmesi için tek bir taşıyıcı belirteci kabul edin.

Azure AD 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önderildikleriyle aynı biçimde depolanmalıdır. Geçersiz değerler açıklayıcı, eyleme dönüştürülebilir bir hata iletisiyle reddedilmelidir. Azure AD tarafından gönderilen verilerle 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)
  • Kaynağın tamamını PATCH yanıtına eklemek gerekli değildir.
  • 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şme gerektirmez. Azure AD değerlerini opEkle, Değiştir ve Kaldır olarak gösterir.
  • Microsoft Azure AD, 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 Azure portal 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 Azure AD bu durumlarda veri çekebileceği çok fazla karmaşık veri yapısı yoktur. Basit eşlenmiş ad/değer türü karmaşık öznitelikleri kolayca eşlenebilir, ancak üç veya daha fazla alt dağıtımı olan karmaşık özniteliklere veri akışı şu anda iyi desteklenmemektedir.
  • Ç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:

/Kullanıcı:

  • Yetkilendirmeler özniteliği desteklenmez.
  • Kullanıcı benzersizliği için dikkate alınan 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 get to /Users işlevi hem userName eq "" hem de eq "user@contoso.comwork"].value eq "user@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 Azure AD 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ı Azure AD ile tümleştirmek için bir gereksinimdir.

/Schemas (Şema bulma):

  • Örnek istek/yanıt
  • Şema bulma şu anda özel galeri dışı SCIM uygulamasında desteklenmemekte, ancak belirli galeri uygulamalarında kullanılmaktadır. Bundan sonra şema bulma, mevcut bir galeri SCIM uygulamasının şemasına daha fazla öznitelik eklemek için tek yöntem olarak kullanılacaktır.
  • Bir değer yoksa null değerler göndermeyin.
  • Özellik değerleri büyük/küçük harfle yazılmalıdır (örneğin, readWrite).
  • Bir liste yanıtı döndürmelidir.
  • /schemas isteği, birisi Azure portal sağlama yapılandırmasını her kaydettiğinde veya bir kullanıcı Azure portal düzenleme sağlama sayfasına her geldiğinde Azure AD Sağlama Hizmeti tarafından 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. Özniteliklerin kaldırılmasına neden olmaz.

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

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

Kullanıcının sağlamasını kaldırma sırasını gösteren diyagram.

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 Azure AD uygulamanızın kimlik deposundaki bir grubun yaşam döngüsünü yönetmek için scim uç noktasına gönderilen iletiler gösterilir. Bu iletiler, kullanıcılarla ilgili iletilerden iki şekilde farklıdır:

  • Grupları alma istekleri, members özniteliğinin isteğe yanıt olarak sağlanan herhangi bir kaynağın dışında tutulacağını belirtir.
  • Başvuru özniteliğinin belirli bir değere sahip olup olmadığını belirleme istekleri, members özniteliğiyle ilgili isteklerdir.

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

Grubun sağlamasını kaldırma sırasını gösteren diyagram.

SCIM protokol istekleri ve yanıtları

Bu makalede, Azure Active Directory (Azure AD) 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

Azure AD kullanıcı sağlama hizmetinin aşağıda 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 veya emails[type eq "work"] öznitelikleri tarafından userName sorgulanabilir.

Kullanıcı Oluştur

İstek

POST /Kullanıcılar

{
    "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": []
}
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_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

İ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_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
    }]
}
İstek

GET /Users/5171a35d82074e068ce2

Yanıt (Kullanıcı bulunamadı. Ayrıntı gerekli değildir, yalnızca durumdur.)
{
    "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_dfeef4c5-5681-4387-b016-bdf221e82081"

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_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ç

İ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_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]

İ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_49dc1090-aada-4657-8434-4995c25a00f7@testuser.com",
        "type": "work",
        "primary": true
    }]
}

Disable User

İ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ı Silme

İstek

DELETE /Users/5171a35d82074e068ce2 HTTP/1.1

Yanıt

HTTP/1.1 204 İçerik Yok

Grup İşlemleri

  • Gruplar her zaman boş bir üye listesiyle oluşturulur.
  • Gruplar özniteliği tarafından displayName sorgulanabilir.
  • Grup PATCH isteğine güncelleştirme, yanıtta http 204 İçerik Yok değerini vermelidir. Tüm üyelerin listesini içeren bir cesedi döndürmek önerilmez.
  • Grubun tüm üyelerinin döndürülmesi desteklenemez.

Grup Oluşturma

İ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": []
}

Get Group

İ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 ölçütüne 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 Silme

İ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 TLS protokolü sürümleri TLS 1.2 ve TLS 1.3'lerdir. TlS'nin başka sürümlerine izin verilmez. SSL sürümüne izin verilmez.

  • RSA anahtarları en az 2.048 bit olmalıdır.
  • ECC anahtarları en az 256 bit olmalı ve onaylanan üç nokta eğrisi 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, aşağıda belirtilen sırayla aşağıdaki şifre 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ı

Azure AD sağlama hizmeti şu anda burada listelenen AzureActiveDirectory IP Aralıkları altında çalışır. Azure AD sağlama hizmetinden uygulamanıza gelen trafiğe izin vermek için AzureActiveDirectory etiketi altında listelenen 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.

Azure AD ayrıca ö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 Azure AD bağlantı sağlayan basit bir aracı dağıtabilir. Burada daha fazla bilgi edinin.

SCIM uç noktası oluşturma

Şemanızı tasarladığınıza ve Azure AD 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.

Azure AD 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. SCIM uç noktanızı oluşturduktan sonra test etmek istersiniz. Başvuru kodunun bir parçası olarak sağlanan Postman testlerinin koleksiyonunu kullanabilir veya yukarıda sağlanan örnek istekler / yanıtlar üzerinden çalıştırabilirsiniz.

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 iki projeden oluşur. SCIM ve Microsoft. SCIM. WebHostSample.

Microsoft. SCIM projesi, web hizmetinin SCIM belirtimine uygun bileşenlerini tanımlayan kitaplıktır. Arabirim Microsoft bildirir. SCIM. IProvider, 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.

Döküm: Sağlayıcının yöntemlerine yapılan çağrılara çevrilmiş bir istek

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 Microsoft uygular. SCIM. Örnek kimlik deposu olarak sınıfları bellekte tutan IProvider arabirimi.

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
  • Go Daddy
  • Verisign
  • WoSign
  • DST Kök CA X3

.NET Core SDK'sı geliştirme sırasında kullanılabilecek 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'de HTTPS hakkında daha fazla bilgi için şu bağlantıyı kullanın: ASP.NET Core'de HTTPS'yi zorunlu kılma

Uç nokta kimlik doğrulamayı işleme

Azure AD Sağlama Hizmeti'nden gelen istekler bir OAuth 2.0 taşıyıcı belirteci içerir. Taşıyıcı belirteci, Azure AD gibi bir yetkilendirme sunucusu tarafından verilen ve uygulamanız tarafından güvenilen bir güvenlik belirtecidir. Azure AD sağlama hizmetini aşağıdaki belirteçlerden birini kullanacak şekilde yapılandırabilirsiniz:

  • Uzun süreli taşıyıcı belirteç. SCIM uç noktası, Azure AD dışında bir verenden OAuth taşıyıcı belirteci gerektiriyorsa, gerekli OAuth taşıyıcı belirtecini isteğe bağlı Gizli Belirteç 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.

  • taşıyıcı belirteci Azure AD. Gizli Dizi Belirteci alanı boş bırakılırsa, Azure AD her istekte Azure AD verilen bir OAuth taşıyıcı belirteci içerir. Kimlik sağlayıcısı olarak Azure AD kullanan uygulamalar bu Azure AD verilen belirteci doğrulayabilir.

    • İstekleri alan uygulama, belirteç verenin beklenen bir Azure AD kiracı için Azure AD olduğunu doğrulamalıdır.
    • Belirteçte, veren bir iss talep tarafından tanımlanır. Örneğin, "iss":"https://sts.windows.net/12345678-0000-0000-0000-000000000000/". Bu örnekte, talep değerinin https://sts.windows.net temel adresi Azure AD veren olarak tanımlarken göreli adres segmenti 12345678-0000-0000-0000-0000000000000, belirtecin verildiği Azure AD kiracısının benzersiz tanımlayıcısıdır.
    • Belirtecin hedef kitlesi, galerideki uygulamanın Uygulama Kimliği'dir . Tek bir kiracıya kayıtlı uygulamalar SCIM istekleriyle aynı iss talebi alır. Tüm özel uygulamaların uygulama kimliği 8adf8e6e-67b2-4cf2-a259-e3dc5476c621'dir. Azure AD sağlama hizmeti 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 kullanılarak doğrulanır. AspNetCore.Authentication.JwtBearer paketi. Aşağıdaki kod, belirtilen bir kiracı için Azure AD tarafından verilen taşıyıcı belirteci kullanılarak hizmetin uç noktalarına yönelik isteklerin kimliğinin doğrulandığını zorunlu kılır:

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ı kullanır.

ASP.NET Core'daki birden çok ortam hakkında daha fazla bilgi için bkz. ASP.NET Core'de 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ı zorlar:

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ğlama ve sağlamasını kaldırma işlemlerini işleme

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

Azure AD, Azure AD 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 dosyasında, Azure AD'daki 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) Azure AD ö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 yönelik bir sorguya verilen yanıt herhangi bir kullanıcı döndürmezse, Azure AD hizmetin Azure AD'dakine karşılık gelen 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ştir:

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 Microsoft bir örneğidir. SCIM. Microsoft tanımlanan Core2EnterpriseUser sınıfı. SCIM. Şema kitaplığı. Kullanıcıyı sağlama isteği başarılı olursa, yönteminin uygulanması Microsoft bir örneğini döndürmesi beklenir. SCIM. Core2EnterpriseUser sınıfı, Identifier özelliğinin değeri yeni sağlanan kullanıcının benzersiz tanımlayıcısı olarak ayarlanır.

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

SCIM tarafından yönetilen bir kimlik deposunda mevcut olduğu bilinen bir kullanıcıyı güncelleştirmek için Azure AD aşağıdaki gibi bir istekle hizmetten söz konusu kullanıcının geçerli durumunu isteyerek devam eder:

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);

Kullanıcının geçerli durumunu alma isteği örneğinde, 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

Bir başvuru özniteliği güncelleştirilecekse, Azure AD hizmet tarafından önlenen kimlik deposundaki başvuru özniteliğinin geçerli değerinin Azure AD'de bu özniteliğin değeriyle zaten eşleşip eşleşmediğini belirlemek için hizmeti sorgular. Kullanıcılar için geçerli değerin bu şekilde sorgulandığı tek öznitelik, yönetici özniteliğidir. Bir kullanıcı nesnesinin yönetici özniteliğinin şu anda belirli bir değere sahip olup olmadığını belirlemeye yönelik 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, 0 y dizininin değeri olabilir 1. Veya x değeri olabilir 1 ve y değeri olabilir 0. Filtre sorgusu parametresinin ifadelerinin sırasına bağlıdır.

Örnek 5. kullanıcıyı güncelleştirmek için Azure AD'dan SCIM uç noktasına istek

Bir kullanıcıyı güncelleştirmek için Azure AD'dan SCIM uç noktasına bir istek örneği aşağıda verilmiştir:

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);

Kullanıcıyı güncelleştirme isteği örneğinde, 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ı tarafından önlenen bir kimlik deposundan bir kullanıcının sağlamasını kaldırmak için Azure AD 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, 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ı Azure AD Sağlama Hizmeti ile tümleştirme

Azure AD, 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, Azure AD 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

Azure AD SCIM uygulaması, kullanıcıların Azure AD ve hedef uygulama arasında sürekli olarak eşitlenmesini sağlamak için tasarlanan ve çok özel bir standart işlem kümesi uygulayan Azure AD kullanıcı sağlama hizmetinin üzerine kurulmuştur. Azure AD Sağlama Hizmeti'nin 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 İlk ve artımlı bölümüne bakın.

Başlarken

Bu makalede açıklanan SCIM profilini destekleyen uygulamalar, Azure AD uygulama galerisindeki "galeri dışı uygulama" özelliği kullanılarak Azure AD bağlanabilir. bağlandıktan sonra, Azure AD her 40 dakikada bir bir eşitleme işlemi çalıştırır; burada 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. Azure AD portalında oturum açın. Geliştirici programına kaydolarak P2 lisanslarıyla Azure AD için ücretsiz deneme sürümüne erişebilirsiniz)

  2. Sol bölmeden Kurumsal uygulamalar'ı seçin. Galeriden eklenen uygulamalar da dahil olmak üzere tüm yapılandırılmış uygulamaların listesi gösterilir.

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

  4. Uygulamanız için bir ad girin, "galeride bulamadığınız diğer 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 Azure AD uygulama galerisi gösterilmektedir:

    Azure AD uygulama galerisini gösteren ekran görüntüsü.

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

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

    Aşağıdaki ekran görüntüsünde, Azure portal sağlama ayarlarını yapılandırma gösterilmektedir:

    Azure portal uygulama sağlama sayfasının ekran görüntüsü.

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

  8. SCIM uç noktası, Azure AD dışında bir verenden OAuth taşıyıcı belirteci gerektiriyorsa, gerekli OAuth taşıyıcı belirtecini isteğe bağlı Gizli Belirteç alanına kopyalayın. Bu alan boş bırakılırsa, Azure AD her istekte Azure AD verilen bir OAuth taşıyıcı belirteci içerir. Kimlik sağlayıcısı olarak Azure AD kullanan uygulamalar bu Azure AD verilen belirteci doğrulayabilir.

    Not

    Bu alanı boş bırakıp Azure AD tarafından oluşturulan bir belirteci kullanmanız önerilmez. Bu seçenek öncelikli olarak test amacıyla kullanılabilir.

  9. AZURE AD SCIM uç noktasına bağlanmayı denemesi 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ı, Azure AD yapılandırmasında seçilen eşleştirme özelliği olarak rastgele bir GUID kullanarak mevcut olmayan bir kullanıcı için SCIM uç noktasını sorgular. Beklenen doğru yanıt, boş bir SCIM ListResponse iletisiyle HTTP 200 Ok şeklindedir.

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

  11. Eşlemeler bölümünde iki seçilebilir öznitelik eşleme kümesi vardır: biri kullanıcı nesneleri için, diğeri de grup nesneleri için. Azure AD uygulamanızla 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 grupları eşleştirmek için kullanılır. Değişiklikleri kaydetmek için Kaydet'i seçin.

    Not

    "Gruplar" eşlemesini devre dışı bırakarak isteğe bağlı olarak grup nesnelerinin eşitlenmesini devre dışı bırakabilirsiniz.

  12. Ayarlar'ın altında Kapsam alanı, hangi kullanıcıların ve grupların eşitleneceğini tanımlar. Yalnızca Kullanıcılar ve gruplar sekmesinde 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.

  13. Yapılandırmanız tamamlandıktan sonra Sağlama Durumu'nuAçık olarak ayarlayın.

  14. Azure AD sağlama hizmetini başlatmak için Kaydet'i seçin.

  15. 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 sol panelde Sağlama günlükleri'ni seçerek ilerleme durumunu izleyebilirsiniz. Bu işlem uygulamanızda sağlama hizmeti tarafından gerçekleştirilen tüm eylemleri gösterir. Azure AD sağlama günlüklerini okuma hakkında daha fazla bilgi için bkz. Otomatik kullanıcı hesabı sağlama hakkında 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ılacak bir uygulama oluşturuyorsanız, Azure AD uygulama galerisinde kullanılabilir hale getirebilirsiniz. Kuruluşların uygulamayı bulması ve sağlamayı yapılandırması kolaydır. Uygulamanızı Azure AD 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ı galerimizle tümleştirmek, uç noktanızı test etmek ve müşterilerin kullanması için ekleme belgelerini yayınlamak için sizinle birlikte çalışır.

Uygulamanızı hızlı bir şekilde eklemek için denetim listesini kullanın ve müşteriler sorunsuz bir dağıtım deneyimi yaşar. 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)
  • Müşterilere galeri ekleme sonrasında yol gösterecek mühendislik ve destek kişileri oluşturma (Gerekli)
  • 3 Uygulamanız için süresi dolmayan test kimlik bilgileri (Gerekli)
  • Aşağıda açıklandığı gibi OAuth yetkilendirme kodu verme veya uzun ömürlü belirteç desteği (Gerekli)
  • 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ılmasına dayanır.

Yetkilendirme yöntemi Avantajlar Dezavantajlar Destek
Kullanıcı adı ve parola (Azure AD tarafından önerilmez veya desteklenmez) Uygulanması kolay Güvensiz - Pa$$word önemli değil Yeni galeri veya galeri dışı uygulamalar için desteklenmez.
Uzun süreli 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çleri parolalardan çok daha kısa ömürlü olur ve uzun süreli taşıyıcı belirteçlerin 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, kısa vadeli test amacıyla kullanıcı arabiriminde gizli dizi belirteci 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ızdadır.
OAuth istemci kimlik bilgileri verme Erişim belirteçleri parolalardan çok daha kısa ömürlü olur ve uzun süreli taşıyıcı belirteçlerin olmadığı otomatik yenileme mekanizmasına sahiptir. Hem yetkilendirme kodu verme hem de istemci kimlik bilgileri aynı tür erişim belirteci oluşturur, bu nedenle bu yöntemler arasında geçiş API'de 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, kısa vadeli test amacıyla kullanıcı arabiriminde gizli dizi belirteci olarak bir erişim belirteci sağlayabilirsiniz. Galeri dışı OAuth istemci kimlik bilgileri verme desteği kapsamımızdadır.

Not

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

OAuth kod 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 izni almak için istemci tarafından bir URL.

  • İstemci kimliği, yetkilendirme sunucusu kayıtlı istemciye, istemci tarafından sağlanan kayıt bilgilerini temsil eden benzersiz bir dize olan bir istemci tanımlayıcısı verir. İ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 anahtarı, 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 desteklenmez. OAuth v2 desteklenir.

En iyi yöntemler (önerilir, ancak gerekli değildir):

  • Birden çok yeniden yönlendirme URL'sini destekleyin. Yöneticiler hem "portal.azure.com" hem de "aad.portal.azure.com" kaynaklarından sağlamayı yapılandırabilir. Birden çok yeniden yönlendirme URL'sini desteklemek, kullanıcıların her iki portaldan da erişim yetkisi verebilmesini sağlar.
  • Kapalı kalma süresi olmadan kolay yenileme için birden çok gizli diziyi destekleyin.

OAuth kod verme akışını ayarlama

  1. Azure portal oturum açın, Kurumsal uygulamalar>Uygulama>Sağlama'ya gidin ve Yetki ver'i seçin.

    1. Azure portal kullanıcıyı Yetkilendirme URL'sine yönlendirir (üçüncü taraf uygulamanın oturum açma sayfası).

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

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

    4. Azure AD 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

  2. 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 Azure AD Sağlama Hizmeti ile uyumluluğunu doğrulamanızı sağlar.

Uzun süreli 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 takdirde belirtecin süresi dolduğunda sağlama işi karantinaya alınır.

Daha fazla kimlik doğrulama 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 genişletmenizi öneririz. Başlatmayı desteklemek için aşağıdaki denetim listesini tamamlamanızı öneririz:

  • Satış ve müşteri destek ekiplerinizin farkında, hazır olduğundan ve tümleştirme özellikleriyle konuşaabildiğinden 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 bülteni oluşturabilirsiniz. Örnek: Imprivata ve Azure AD Basın Bülteni
  • Tümleştirmeyi müşterilerinize tanıtmak için Twitter, Facebook veya LinkedIn gibi sosyal medyanızdan yararlanın. Gönderinizi yeniden ekleyebilmemiz için eklemeyi @AzureAD unutmayın. Örnek: Imprivata Twitter Gönderisi
  • Pazarlama sayfalarınızı/web sitenizi (örneğin tümleştirme sayfası, iş ortağı sayfası, fiyatlandırma sayfası vb.) oluşturun veya güncelleştirerek ortak tümleştirmenin kullanılabilirliğini ekleyin. Örnek: Pingboard tümleştirme Sayfası, Smartsheet tümleştirme sayfası, Monday.com fiyatlandırma sayfası
  • Müşterilerin nasıl kullanmaya başlayabileceğinizi gösteren bir yardım merkezi makalesi veya teknik belge oluşturun. Örnek: Envoy + Microsoft Azure AD tümleştirme.
  • 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