Öğretici: Azure Active Directory bir SCıM uç noktası için geliştirme ve plan sağlama

Uygulama geliştiricisi olarak, uygulamanız ve Azure AD (AAD) arasında kullanıcıları ve grupları otomatik olarak sağlamayı etkinleştirmek için etki alanları arası kimlik yönetimi (SCıM) Kullanıcı yönetimi API 'sini kullanabilirsiniz. bu makalede bir scım uç noktası oluşturma ve AAD sağlama hizmeti ile tümleştirme açıklanır. SCıM belirtimi, sağlama için ortak bir Kullanıcı şeması sağlar. SAML veya openıd Bağlan gibi federasyon standartlarıyla birlikte kullanıldığında, scım yöneticilere erişim yönetimi için uçtan uca standartlara dayalı bir çözüm sunar.

SCıM ile Azure AD 'den bir uygulamaya sağlama

SCıM iki uç noktanın standartlaştırılmış bir tanımıdır: /Users uç nokta ve /Groups uç nokta. Nesneleri oluşturmak, güncelleştirmek ve silmek için ortak REST fiillerini ve grup adı, Kullanıcı adı, adı, soyadı, soyadı ve e-posta gibi ortak özniteliklerin önceden tanımlanmış bir şemasını kullanır. Bir SCıM 2,0 REST API sunan uygulamalar, özel bir kullanıcı yönetimi API 'siyle çalışmayı azaltabilir veya ortadan kaldırabilir. Örneğin, tüm uyumlu SCıM istemcileri /Users Yeni bir kullanıcı girişi oluşturmak için uç noktaya BIR JSON NESNESININ http gönderisini nasıl yapılacağını bilir. Aynı temel eylemler için biraz farklı bir API sağlamak yerine, SCıM standardına uyan uygulamalar, önceden var olan istemcilerden, araçlardan ve koddan hemen faydalanabilir.

SCıM 2,0 (RFC 7642, 7643, 7644) ' de tanımlanan yönetim için standart Kullanıcı nesne şeması ve REST API 'leri, kimlik sağlayıcılarının ve uygulamaların birbirleriyle daha kolay tümleşmesine olanak tanır. Bir SCıM uç noktası oluşturan uygulama geliştiricileri, özel iş yapmak zorunda kalmadan herhangi bir SCıM uyumlu istemcisiyle tümleştirilebilir.

Bir uygulamaya sağlamayı otomatik hale getirmek için Azure AD SCıM istemcisiyle bir SCıM uç noktası oluşturup tümleştirmesini gerektirir. 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 nesne ve özniteliklerini, AAD scim uygulaması tarafından desteklenen kullanıcı ve grup şemasına nasıl eşleneceğini belirlemek için belirler.

  2. AAD scım uygulamasını anlayın

    AAD scım istemcisinin, scım protokol isteği işleme ve yanıtlarınızı modellemek için nasıl uygulandığını anlayın.

  3. SCıM uç noktası oluşturma

    bir uç nokta, AAD sağlama hizmeti ile tümleştirilecek scım 2,0 ile uyumlu olmalıdır. Bir seçenek olarak, uç noktanızı derlemek için Microsoft ortak dil altyapısı (CLı) kitaplıklarını ve kod örneklerini kullanın. Bu örnekler yalnızca başvuru ve test içindir; bunları üretim uygulamanızda bağımlılıklar olarak kullanmanızı öneririz.

  4. scım uç noktanızı AAD scım istemcisiyle tümleştirin

    kuruluşunuz AAD desteklediği bir scım 2,0 profili uygulamak için üçüncü taraf bir uygulama kullanıyorsa, kullanıcıların ve grupların sağlanması ve sağlanması için hızlı bir şekilde otomatik hale getirebilirsiniz.

  5. uygulamanızı AAD uygulama galerisine yayımlayın

    Müşterilerin uygulamanızı bulmasını ve sağlamayı kolay bir şekilde yapılandırmasını kolaylaştırın.

SCıM uç noktasını Azure AD ile tümleştirme adımları

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.

SCıM 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ı 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şlenir)
  • meta, hizmet sağlayıcısı tarafından tutulan salt okuma meta verileri

SIM standardı, çekirdek Kullanıcı şemasına ek olarak, uygulamanızın ihtiyaçlarını karşılamak için Kullanıcı şemasını genişletmek üzere bir modelle bir Kurumsal Kullanıcı uzantısı tanımlar.

Örneğin, uygulamanız hem bir kullanıcının e-postasını hem de kullanıcının yöneticisini gerektiriyorsa, kullanıcının yöneticisini toplamak üzere kullanıcının e-postasını ve kuruluş Kullanıcı şemasını toplamak için çekirdek şemayı kullanın.

Şemanızı tasarlamak için aşağıdaki adımları izleyin:

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

  2. Özniteliklerin zaten çekirdek Kullanıcı şemasında veya Kurumsal Kullanıcı şemasında tanımlanmış olup olmadığını denetleyin. Aksi takdirde, Kullanıcı şemasına eksik öznitelikleri içeren bir uzantı tanımlamanız gerekir. Kullanıcıya bir uzantının Kullanıcı tarafından sağlanma izin vermek için aşağıdaki örneğe bakın tag .

  3. SCıM özniteliklerini Azure AD 'deki Kullanıcı öznitelikleriyle eşleyin. SCıM uç noktanıza tanımladığınız özniteliklerden birinin Azure AD Kullanıcı şemasında açık bir karşılığı yoksa, kiracı yöneticisinin şemasını genişletmesine veya özellik için aşağıda gösterildiği gibi bir uzantı özniteliği kullanmasına kılavuzluk edin tags .

Gerekli uygulama özniteliği Eşlenmiş SCıM özniteliği Eşlenen Azure AD özniteliği
loginName userName userPrincipalName
firstName name.givenName givenName
lastName name.familyName Soyadı
Iş posta e-postalar [tür EQ "iş"]. değer Posta
manager manager manager
etiket urn: IETF: params: Scim: schemas: EXTENSION: CustomExtensionName: 2.0: Kullanıcı: Tag extensionAttribute1
durum active ısofdeleted (hesaplanan değer kullanıcı üzerinde depolanmaz)

Gerekli özniteliklerin örnek listesi

{
     "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"
   }
}   

JSON yükü tarafından tanımlanan örnek şema

Not

Uygulama için gerekli olan özniteliklere ek olarak JSON temsili de gerekli id , externalId ve meta özniteliklerini içerir.

/User /Group Azure AD 'deki tüm varsayılan kullanıcı özniteliklerinin SCıM RFC 'ye göre sınıflandırmanıza yardımcı olur, bkz. ÖZELLEŞTIRME özniteliklerinin Azure AD ile SCIM uç noktası arasında nasıl eşlendiğinebakın.

Azure Active Directory kullanıcı "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
Çalışan urn: IETF: params: Scim: schemas: Extension: Enterprise: 2.0: User: employeeNumber
Facsimile-TelephoneNumber phoneNumbers [tür EQ "Faks"]. değer
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

Kullanıcı ve grup özniteliklerinin örnek listesi

Azure Active Directory grubu urn:ietf:params:scim:schemas:core:2.0:Group
displayName displayName
üyeler üyeler
objectId externalId

Grup özniteliklerinin örnek listesi

Not

Hem kullanıcıları hem de grupları desteklemeniz gerekmez veya burada gösterilen tüm öznitelikler, yalnızca Azure AD'de özniteliklerin SCIM protokolünde özelliklerle nasıl eşlenmiş olduğuyla ilgili bir başvurudur.

SCIM RFC'de tanımlanan birkaç uç nokta vardır. Uç noktayla başlayabilir /User ve ardından bu uç noktayı genişletebilirsiniz.

Uç Nokta Açıklama
/User Bir kullanıcı nesnesi üzerinde CRUD işlemleri gerçekleştirme.
/Group Bir grup nesnesi üzerinde CRUD işlemleri gerçekleştirme.
/Schemas 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 , ve , başka bir hizmet sağlayıcısı ise , ve title emails name title phoneNumbers kullanır. Şemalar uç noktası, desteklenen özniteliklerin bulunmasına olanak sağlar.
/Bulk Toplu işlemler, büyük bir kaynak nesnesi koleksiyonu üzerinde işlemleri tek bir işlemde gerçekleştirmenizi sağlar (örneğin, büyük bir grubun üyeliklerini güncelleştirme).
/ServiceProviderConfig Desteklenen SCIM standardı özellikleri hakkında ayrıntılar sağlar; örneğin, desteklenen kaynaklar ve kimlik doğrulama yöntemi.
/ResourceTypes Her kaynakla ilgili meta verileri belirtir.

Uç noktaların örnek listesi

Not

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

SCIM AAD anlama

ScIM 2.0 kullanıcı yönetimi API'sini desteklemek için, bu bölümde AAD SCIM istemcisinin nasıl uygulandığını ve SCIM protokol isteği işleme ve yanıtlarınızı modellemeyi gösterir.

Önemli

Azure AD SCIM uygulamasının davranışı en son 18 Aralık 2018'de güncelleştirildi. Nelerin değiştiklerine ilişkin bilgi için bkz. Azure AD Kullanıcı Sağlama hizmetinin SCIM 2.0 protokolü uyumluluğu.

SCIM 2.0 protokol belirtimi dahilinde,uygulamanız şu gereksinimleri desteklemeli:

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 performansla 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 alınır ve grupları tarafından id username externalId displayName sorgular.
Grup kaynağını sorgularken excludedAttributes=members filtresi bölüm 3.4.2.5
Uygulamanıza kimlik doğrulaması ve kimlik doğrulaması için tek bir taşıyıcı AAD belirteci kabul etme.
Bir kullanıcı geçici silme active=false ve kullanıcı geri yükleme active=true Kullanıcının etkin olup olmadığı bir istekte kullanıcı nesnesi döndürüldü. Kullanıcının döndürülemez olması gereken tek zaman, uygulamanın kalıcı olarak silinmesidir.
/Schemas uç noktasını destekleme bölüm 7 Ek öznitelikleri bulmak için şema bulma uç noktası kullanılır.

Bir SCIM uç noktası uygulamanın genel yönergelerini kullanarak aşağıdakilerle uyumluluğu AAD:

Genel:
  • id , tüm kaynaklar için gerekli bir özelliktir. Bir kaynak döndüren her yanıt, sıfır üye dışında her kaynağın bu özele sahip ListResponse olduğundan emin olmalıdır.
  • Gönderilen değerler, gönderilen değerlerle aynı biçimde depolanmış olmalıdır. Geçersiz değerler açıklayıcı, eyleme değiştirilebilir bir hata iletisiyle reddedilir. Azure AD tarafından gönderilen veri ve SCIM uygulamasında depolanan veriler arasında veri dönüşümleri yaşanmaz. (örneğin, bir telefon numarası 55555555555+5 (555) 555-5555) olarak kaydedilene/döndürülene kadar gönderilmez
  • KAYNAĞın tamamını PATCH yanıtına eklemek gerekli değildir.
  • 3.5.2 bölümünde tanımlandığı gibi SCIM'de yapısal öğelerde, özellikle PATCH işlem değerlerde büyük/küçük harfe duyarlı op eşleşme gerektirmez. AAD değerlerini op Ekle, Değiştir ve Kaldır olarak gösterir.
  • Microsoft AAD uç noktanın ve kimlik bilgilerinin geçerli olduğundan emin olmak için rastgele bir kullanıcı ve grup getirme istekleri yapar. Ayrıca, test bağlantısı akışının bir parçası olarak da Azure portal.
  • SCIM uç noktanız üzerinde HTTPS desteği.
  • Özel karmaşık ve çok değerli öznitelikler AAD ancak bu durumlarda veri çekmek için birçok karmaşık veri yapısına sahip değildir. Basit eşleştirilmiş ad/değer türü karmaşık öznitelikler kolayca eşlenmiş olabilir, ancak üç veya daha fazla alt öznitelikle karmaşık özniteliklere veri akışı şu anda iyi desteklenmemiştir.
Kaynakları Alma:
  • Sorgu/filtre isteğine verilen yanıt her zaman bir olması ListResponse gerekir.
  • Microsoft AAD yalnızca şu işleçleri kullanır: eq ,and
  • Kaynakların sorgulayabilirsiniz özniteliği, Azure portal'de uygulama üzerinde eşleşen bir öznitelik olarak ayarAzure portal bkz. Kullanıcı Sağlama Öznitelik Eşlemelerini Özelleştirme.
/Users:
  • yetkilendirmeleri özniteliği desteklenmiyor.
  • Kullanıcı benzersizliği için dikkate alınan tüm öznitelikler filtrelenmiş bir sorgunun parçası olarak kullanılabilir olmalıdır. (örneğin, kullanıcı benzersizliği hem userName hem de e-postalar[type eq "work"] için değerlendirilirse, filtreye sahip bir GET to /Users hem userName eq " user@contoso.com " hem de e-postalar[type eq "work"] eq user@contoso.com " " sorgularına izin ver olmalıdır.
/Groups:
  • Gruplar isteğe bağlıdır, ancak yalnızca SCIM uygulaması PATCH isteklerini destekliyorsa desteğe bağlıdır.
  • Gruplar, 'displayName' değeri üzerinde scIM uygulaması ile Azure Active Directory benzersiz olmalıdır. Bu, SCIM protokolünün bir gereksinimi değildir, ancak bir SCIM hizmetini bir SCIM protokolü ile tümleştirme Azure Active Directory.
/Schemas (Şema bulma):
  • Örnek istek/yanıt
  • Şema bulma şu anda galeri dışı özel SCIM uygulamasında desteklenmiyor, ancak belirli galeri uygulamalarında kullanılıyor. Daha sonra şema bulma, mevcut bir galeri SCIM uygulamasının şemasına ek öznitelikler 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/büyük harfli (örn. readWrite) olabilir.
  • Bir liste yanıtı dönmeli.
  • /schemas isteği, birisi Sağlama yapılandırmasını Azure Portal'a her kaydedişte veya bir kullanıcı Azure Portal'daki sağlamayı düzenleme sayfasına her girişte Azure AD SCIM istemcisi tarafından yapılır. Bulunan tüm ek öznitelikler, hedef öznitelik listesi altındaki öznitelik eşlemeleri içinde müşterilere görünür. Şema bulma yalnızca ek hedef özniteliklerin ekleniyor olmasıyla yol açıyor. Özniteliklerin kaldırılmasına neden olmaz.

Kullanıcı sağlama ve sağlamayı geri alama

Aşağıdaki çizimde, bir AAD kullanıcı yaşam döngüsünü yönetmek için bir SCIM hizmetine gönderdiği iletiler gösterilmiştir.

Kullanıcı sağlama ve sağlamayı geri alama dizisini gösterir
Kullanıcı sağlama ve sağlamayı geri sağlamayı geri alama sırası

Grup sağlama ve sağlamayı geri alama

Grup sağlama ve sağlamayı geri alama isteğe bağlıdır. Uygulama ve etkinleştirildiğinde, aşağıdaki çizimde, AAD bir grubun yaşam döngüsünü yönetmek için bir SCIM hizmetine gönderdiği iletiler gösterilmiştir. Bu iletiler, kullanıcılarla ilgili iletilerden iki şekilde farklıdır:

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

Grup sağlama ve sağlamayı geri sağlamayı geri alama dizisini gösterir
Grup sağlama ve sağlamayı geri alama sırası

SCIM protokolü istekleri ve yanıtları

Bu bölümde, bir SCIM istemcisi tarafından yayılan AAD SCIM istekleri ve örnek beklenen yanıtlar sağlanmaktadır. En iyi sonuçları elde etmek için, bu istekleri bu biçimde işlemek ve beklenen yanıtları yayın uygulamanıza kod uygulamanız gerekir.

Önemli

Kullanıcı hazırlama hizmetinin AAD sağlama hizmetinin aşağıda açıklanan işlemleri nasıl ve ne zaman yayıyor olduğunu anlamak için Sağlama döngüleri: Sağlamanın nasıl çalıştığının 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 öznitelikleri tarafından userName email[type eq "work"] sorgu olabilir.

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_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ının gerekli olmadığını, yalnızca durumun gerekli olduğunu unutmayın.)
{
    "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ı Al - Sıfır sonuç

İstek

GET /Users?filter=userName eq "non-existent user"

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ı 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ı 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şturulacak.
  • Gruplar özniteliği tarafından sorgu displayName olabilir.
  • Grup PATCH isteğine güncelleştirmenin yanıtta HTTP 204 İçerik Yok hatasına neden olması gerekir. Tüm üyelerin listesinin yer alan bir gövdeyi iade etmeleri tavsiye edilemez.
  • Grubun tüm üyelerini geri döndürerek desteklemek gerekli değildir.

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

/Groups/40734ae655284ad3abcc? excludedAttributes = Members HTTP/1.1 alın

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",
}

Grubu displayName 'e göre al

İstek

/Groups al? 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
}

Güncelleştirme grubu [Ü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 Içerik yok

Güncelleştirme grubu [Üye Ekleme]

İ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 Içerik yok

Güncelleştirme grubu [ü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 Içerik yok

Grubu Silme

İstek

/Groups/cdb1ce18f65944079d37 HTTP/1.1 SILME

Yanıt

HTTP/1.1 204 Içerik yok

Şema bulma

Şemayı bul

İstek

/Schemas al

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 ' dir. Başka TLS sürümüne izin verilmez. SSL sürümüne izin verilmez.

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

Anahtar uzunlukları

Tüm hizmetlerin, yeterli uzunlukta şifreleme anahtarları kullanılarak oluşturulan X. 509.440 sertifikalarını kullanması gerekir, anlamı:

Şifre paketleri

Tüm hizmetlerin aşağıdaki şifre paketlerini kullanmak için aşağıda belirtilen kesin sırada yapılandırılması gerekir. Yalnızca bir RSA sertifikanız varsa, yüklü ECDSA şifre paketlerinin herhangi bir etkisi olmadığını unutmayın.

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 buradalistelenen AZUREACTIVEDIRECTORY Için IP aralıkları altında çalışır. Azure AD sağlama hizmeti 'nin uygulamanıza bağlanmasına izin vermek için AzureActiveDirectory etiketinin altına listelenen IP aralıklarını ekleyebilirsiniz. Hesaplanan adresler için IP aralığı listesini dikkatle gözden geçirmeniz gerekeceğini unutmayın. ' 40.126.25.32 ' gibi bir adres, IP aralığı listesinde ' 40.126.0.0/18 ' olarak temsil edilebilir. Ayrıca, aşağıdaki API 'yikullanarak IP aralığı listesini programlı bir şekilde alabilirsiniz.

Azure AD Ayrıca, özel ağlardaki uygulamalara bağlantı sağlamak için bir aracı tabanlı çözümü destekler (Azure 'da barındırılan, AWS 'de barındırılan, vb.). Müşteriler, bir gelen bağlantı noktalarını açmadan, kendi özel ağındaki bir sunucuda Azure AD 'ye bağlantı sağlayan hafif bir aracı dağıtabilir. Burada daha fazla bilgi edinin.

SCıM uç noktası oluşturma

Şemanızı tasarladıktan ve Azure AD SCıM uygulamasını anladığınıza göre, SCıM uç noktanızı geliştirmeye başlamanızı sağlayabilirsiniz. Sıfırdan başlamak ve uygulamayı tamamen kendi kendinize oluşturmak yerine, SCıM topluluğu tarafından yayımlanan bir dizi açık kaynaklı SCıM kitaplıklarını kullanabilirsiniz.

Örnekler de dahil olmak üzere bir SCıM uç noktası oluşturma hakkında yönergeler için bkz. Örnek BIR SCIM uç noktası geliştirme.

Azure AD sağlama ekibi tarafından yayımlanan açık kaynaklı .NET Core başvuru kodu örneği , geliştirmeye başlayabilmenizi sağlayan bir kaynaktır. SCıM uç noktanızı oluşturduktan sonra test etmek isteyeceksiniz. Başvuru kodunun bir parçası olarak verilen Postman testleri koleksiyonunu kullanabilir veya yukarıdabelirtilen örnek istekler/yanıtlar üzerinden çalıştırabilirsiniz.

Not

Başvuru kodu, SCıM uç noktanızı oluşturmaya başlamanıza ve "olduğu gıbı" sağlanmaya yardımcı olmak için tasarlanmıştır. Topluluk katkılarına, kodu oluşturmaya ve tutmaya yardımcı olmak için hoş geldiniz.

Çözüm, Microsoft. SCIM ve Microsoft. SCIM. webhostsample olmak üzere iki projeden oluşur.

Microsoft. SCIM PROJESI, SCIM belirtimine uyan Web hizmetinin bileşenlerini tanımlayan kitaplıktır. Microsoft. SCıM. IProvider arabirimini bildirir, istekler, bir kimlik deposunda çalışacak şekilde programlanan, sağlayıcının yöntemlerine yapılan çağrılara çevrilir.

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

Microsoft. scım. webhostsample projesi, boş şablonu temel alan bir Visual Studio ASP.NET Core Web uygulamasıdır. Bu, örnek kodun kapsayıcılar içinde veya Internet Information Services içinde barındırılan tek başına olarak dağıtılmasını sağlar. Ayrıca, sınıfları bir örnek kimlik deposu olarak bellekte tutarak Microsoft. SCıM. ıprovider 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 bir SCıM uç noktası oluşturma

SCıM hizmeti, kök sertifika yetkilisinin aşağıdaki adlardan biri olduğu bir HTTP adresi ve sunucu kimlik doğrulama sertifikasına sahip olmalıdır:

  • CNNIC
  • Comodo
  • CyberTrust
  • DigiCert
  • Coğrafi güven
  • GlobalSign
  • Go Daddy
  • VeriSign
  • WoSign
  • DST kök CA x3

.NET Core SDK, 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. SCıM. WebHostSample: https://localhost:5001
  • IIS Express:https://localhost:44359/

ASP.NET Core ' de https hakkında daha fazla bilgi için aşağıdaki bağlantıyı kullanın: ASP.NET Core https 'yi zorla

Uç nokta kimlik doğrulamasını işleme

Bir Azure Active Directory OAuth 2.0 taşıyıcı belirteci içerir. İsteği alan tüm hizmetler, beklenen kiracı için sertifikayı Azure Active Directory olarak sertifikayı Azure Active Directory gerekir.

Belirteçte, issuer gibi bir iss talebiyle "iss":"https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/" tanımlanır. Bu örnekte, talep değerinin temel adresi olan , Azure Active Directory'yi sertifikayıför olarak tanımlarken göreli adres https://sts.windows.net segmenti cbb1a5ac-f33b-45fa-9bf5-f37db0fed422, belirteci verilen Azure Active Directory kiracının benzersiz tanımlayıcısıdır.

Belirteci hedef kitlesi galeride uygulamanın uygulama şablonu kimliği olur; tek bir kiracıda kayıtlı uygulamaların her biri SCIM istekleriyle aynı iss talebi alır. Tüm özel uygulamalar için uygulama şablonu 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ı.

Örnek kodda, isteklerin kimliği Microsoft.AspNetCore.Authentication.JwtBearer paketi kullanılarak doğrulanır. Aşağıdaki kod, hizmetin uç noktalarına yapılan isteklerin, belirtilen kiracı için Azure Active Directory tarafından verilen taşıyıcı belirteci kullanılarak doğrulanır:

        public void ConfigureServices(IServiceCollection services)
        {
            if (_env.IsDevelopment())
            {
                ...
            }
            else
            {
                services.AddAuthentication(options =>
                {
                    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
                })
                    .AddJwtBearer(options =>
                    {
                        options.Authority = " https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/";
                        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 de taşıyıcı belirteci gereklidir. Örnek kod, ASP.NET Core aşamasında kimlik doğrulama seçeneklerini değiştirmek ve otomatik olarak imzalanan belirteç kullanımını etkinleştirmek için ortamlar kullanır.

Sanal ortamda birden çok ortam hakkında daha fazla ASP.NET Core için bkz. ASP.NET Core.

Aşağıdaki kod, hizmetin uç noktalarına yapılan isteklerin, özel anahtarla imzalanmış bir taşıyıcı belirteç kullanılarak kimlik doğrulamasının zorlanır:

public void ConfigureServices(IServiceCollection services)
{
    if (_env.IsDevelopment())
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            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ğlamalarını geri sağlamayı işleme

Örnek 1. Hizmeti eşleşen bir kullanıcı için sorgulama

Azure Active Directory (AAD), bir kullanıcı için hizmette bir kullanıcının mailNickname öznitelik değeriyle eşleşen bir öznitelik değeriyle externalId AAD. Sorgu, bu örnekte olduğu gibi bir Köprü Metni Aktarım Protokolü (HTTP) isteği olarak ifade edilmektedir. Burada jyoung, Azure Active Directory'deki bir kullanıcının mailNickname örneğidir.

Not

Bu yalnızca bir örnektir. Tüm kullanıcılar mailNickname özniteliğine sahip olmaz ve kullanıcının sahip olduğu değer dizinde benzersiz olabilir. Ayrıca, eşleştirme için kullanılan öznitelik (bu durumda externalId ) öznitelik eşlemeleri AAD 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 çağrıya çevrilir. Bu yöntemin imzası şu şekildedir:

// 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 verilen değere sahip bir kullanıcı için QueryAsync yöntemine externalId geçirilen bağımsız değişkenlerin değerleri:

  • 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

Bir kullanıcının mailNickname öznitelik değeriyle eşleşen bir öznitelik değerine sahip bir kullanıcı için web hizmetine yapılan bir sorgunun yanıtı herhangi bir kullanıcı dönse de AAD, hizmetin hizmetteki kullanıcıya karşılık gelen bir kullanıcı sağlamasini externalId AAD. Bu tür bir isteğin örneği şöyledir:

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 çağrıya çevrilir. Bu yöntemin imzası şu şekildedir:

// 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.SCIM.Schemas kitaplığında tanımlanan Microsoft.SCIM.Core2EnterpriseUser sınıfının bir örneğidir. Kullanıcı sağlama isteği başarılı olursa, yöntemin uygulanması Microsoft.SCIM.Core2EnterpriseUser sınıfının bir örneğini, Identifier özelliğinin değeri yeni sağlanan kullanıcının benzersiz tanımlayıcısına ayarlanmış şekilde geri dönmesi beklenir.

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

SCIM tarafından ön tarafta bir kimlik depolamada var olduğu bilinen bir kullanıcı güncelleştirmek için Azure Active Directory devam eder ve aşağıdaki gibi bir istekle söz konusu kullanıcının hizmetten geçerli durumunu talep 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 çağrıya çevrilir. Bu yöntemin imzası şu şekildedir:

// 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ştirilen başvuru özniteliğinin değerini sorgulama

Bir başvuru özniteliği güncelleştirilecekse, Azure Active Directory, hizmet tarafından ön önünde kimlik deposundaki başvuru özniteliğinin geçerli değerinin Azure Active Directory'de bu özniteliğin değeriyle zaten eş olup olmadığını belirlemek için hizmeti sorgular. Kullanıcılar için geçerli değerin bu şekilde sorgulandır olduğu tek öznitelik, yönetici özniteliğidir. Bir kullanıcı nesnesinin yönetici özniteliğinin şu anda belirli bir değere sahip olup olmadığını belirleme isteğine bir örnek: Örnek kodda istek, hizmet sağlayıcısının QueryAsync yöntemine ç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"

Burada, filtre sorgu parametresinin ifadelerinin sırasına bağlı olarak x dizininin değeri 0, y dizininin değeri 1 veya x değeri 1 ve y değeri 0 olabilir.

Örnek 5. Azure AD'den bir SCIM hizmetine kullanıcı güncelleştirme isteği

Bir scim hizmetine kullanıcı güncelleştirmeye Azure Active Directory bir istek örneği:

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 çağrıya çevrilir. Bu yöntemin imzası şu şekildedir:

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

Bir kullanıcı 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 olarak PatchRequest2). Operations.Count 1
(PatchRequest olarak PatchRequest2). Operations.ElementAt(0). OperationName OperationName.Add
(PatchRequest olarak PatchRequest2). Operations.ElementAt(0). Path.AttributePath "manager"
(PatchRequest olarak PatchRequest2). Operations.ElementAt(0). Value.Count 1
(PatchRequest olarak PatchRequest2). Operations.ElementAt(0). Value.ElementAt(0). Başvuru http://.../scim/Users/2819c223-7f76-453a-919d-413861904646
(PatchRequest olarak PatchRequest2). Operations.ElementAt(0). Value.ElementAt(0). Değer 2819c223-7f76-453a-919d-413861904646

Örnek 6. Kullanıcının sağlarken izinlerini geri ala

Bir kullanıcının SCIM hizmeti tarafından ön önüne gelen bir kimlik deposuna AAD için şu 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 çağrıya çevrilir. Bu yöntemin imzası şu şekildedir:

// 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ıya sağlanan isteğin ö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ı AAD SCIM istemcisiyle tümleştirin

Azure AD, SCIM 2.0protokolünün belirli bir profilini uygulayan uygulamalara atanan kullanıcıları ve grupları otomatik olarak sağacak şekilde yalıtabilir. Profilin özellikleri Azure AD SCIM uygulamasını anlama altında belgelenmiştir.

Bu gereksinimlerle uyumluluk deyimleri için uygulama sağlayıcınıza veya uygulama sağlayıcınızın belgelerine başvurun.

Önemli

Azure AD SCIM uygulaması, Kullanıcıların Azure AD ile hedef uygulama arasında sürekli olarak eşit halinde tutması için tasarlanmış ve çok belirli bir standart işlem kümesi uygulayan Azure AD kullanıcı sağlama hizmeti üzerine inşa edilmiştir. Azure AD SCIM istemcisinin 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ünde Başlangıç ve artımlı bölümüne bakın.

Başlarken

Bu makalede açıklanan SCIM profilini destekleyen uygulamalar, Azure AD Azure Active Directory galerisinde "galeri dışı uygulama" özelliği kullanılarak uygulamalara bağlanabilir. Bağlandıktan sonra Azure AD, uygulamanın SCIM uç noktasını atanan kullanıcılar ve gruplar için sorguladığı ve atama ayrıntılarına göre oluşturduğu veya değiştiren bir eşitleme işlemini 40 dakikada bir çalıştırır.

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

  1. AAD portalında oturum açın. Geliştirici programına kaydolarak P2 lisansları ile Azure Active Directory ücretsiz deneme sürümüne erişesiniz

  2. Sol Enterprise uygulamaları seçin. Galeriden eklenen uygulamalar da dahil olmak üzere yapılandırılan tüm uygulamaların listesi gösterilir.

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

  4. Uygulamanıza bir ad girin, "galeride bulamadınız başka bir uygulamayı tümleştir" seçeneğini belirleyin ve Ekle'yi seçerek bir uygulama nesnesi oluşturun. Yeni uygulama kurumsal uygulamalar listesine eklenir ve uygulama yönetimi ekranına açılır.

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

    Not

    Eski uygulama galerisi deneyimini kullanıyorsanız aşağıdaki ekran kılavuzunu izleyin.

    Azure AD eski uygulama galerisi deneyimini gösteren ekran görüntüsü Azure AD eski uygulama galerisi deneyimi

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

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

    Örnek: Uygulamanın UygulamaNın Sağlama sayfası Azure portal
    Hizmette sağlamayı Azure portal

  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 oAuth taşıyıcı belirteci gerektiriyorsa, gerekli OAuth taşıyıcı belirteci isteğe bağlı Gizli Belirteç alanına kopyalayın. Bu alan boş bırakılırsa, Azure AD her istekle birlikte Azure AD'den verilen bir OAuth taşıyıcı belirteci içerir. Kimlik sağlayıcısı olarak Azure AD kullanan uygulamalar, Azure AD tarafından verilen bu belirteci doğrular.

    Not

    Bu alanı boş bırakmanız ve Azure AD tarafından oluşturulan bir belirteci güvenmeniz önerilmez. Bu seçenek öncelikle test amacıyla kullanılabilir.

  9. SCIM uç noktasına bağlanmayı Azure Active Directory için Bağlantıyı Test Edin'i seçin. Deneme başarısız olursa hata bilgileri görüntülenir.

    Not

    Bağlantıyı Test Etme, 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 Tamam'dır.

  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, biri kullanıcı nesneleri, biri de grup nesneleri için olmak için seçilebilir iki öznitelik eşleme kümesi vardır. Uygulamanıza eşitlenen öznitelikleri gözden geçirmek için her birini Azure Active Directory seçin. Eşleştirme özellikleri olarak seçilen öznitelikler, güncelleştirme işlemleri için uygulamanıza yönelik kullanıcı ve grupları 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şitlemesini devre dışı abilirsiniz.

  12. Kapsam Ayarlar altında Kapsam alanı hangi kullanıcıların ve grupların eşitlenmiş olduğunu 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 'yi seçin (önerilir).

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

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

  15. Yalnızca atanmış kullanıcılar ve grupları eşitlerken (önerilir), Kullanıcılar ve gruplar sekmesini seçin ve eşitlemek istediğiniz kullanıcıları veya grupları atayın.

İlk döngü başlatıldıktan sonra, ilerleme durumunu izlemek için sol panelde Sağlama günlükleri'ni seçerek uygulamanıza sağlama hizmeti tarafından yapılan tüm eylemleri görüntüleyebilirsiniz. Azure AD sağlama günlüklerini okuma hakkında daha fazla bilgi için bkz. Otomatik kullanıcı hesabı sağlama raporlama.

Not

İlk döngü daha uzun sürer ve hizmet çalıştırıldıklarında yaklaşık 40 dakikada bir gerçekleşir.

Birden fazla kiracı tarafından kullanılacak bir uygulama inşa etmek için Azure AD uygulama galerisinde kullanılabilir hale ebilirsiniz. Bu, kuruluşların uygulamayı bulmalarını ve sağlamayı yapılandırmalarını kolaylaştırır. Azure AD galerisinde uygulama yayımlamak ve sağlamayı başkalarının kullanımına almak kolaydır. Buradaki adımlara göz atabilirsiniz. Microsoft, uygulamalarınızı galerimiz ile tümleştirerek uç noktanızı test etmek ve müşterilerin kullanabileceği sürüm ekleme belgelerini sunmak için birlikte çalışır.

Uygulamalarınızı hızlı bir şekilde ekleme ve müşterilerin sorunsuz bir dağıtım deneyimi yaşamasını sağlamak için denetim listesini kullanın. Bilgiler, galeriye eklemede toplanacak.

  • 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ğlanmasını sağlamak için kiracı başına saniye başına en az 25 isteği destekle (Gerekli)
  • Galeri ekleme sonrası müşterilere yol sunmak için mühendislik ve destek kişileri kurma (Gerekli)
  • 3 Uygulamanıza süresi dolmayan test kimlik bilgileri (Gerekli)
  • Aşağıda açıklandığı gibi OAuth yetkilendirme kodu verilmesini veya uzun süreli belirteci destekleme (Gerekli)
  • Galeri ekleme sonrası müşterileri desteklemek için bir mühendislik ve destek noktası kurma (Gerekli)
  • Şema bulma desteği (gerekli)
  • Tek bir PATCH ile birden çok grup üyeliğini güncelleştirme desteği
  • SCIM uç noktanızı herkese açık olarak belgele

SCIM özellikleri, kimlik doğrulaması ve yetkilendirme için SCIM'e özgü bir şema tanımlamaz ve mevcut sektör standartlarının kullanımına güvenmektedir.

Yetkilendirme yöntemi Avantajlar Dezavantajlar Destek
Kullanıcı adı ve parola (Azure AD tarafından önerilmez veya desteklenmiyor) Uygulanması kolay Güvenli değil - Pa$$word önemli değil Yeni galeri veya galeri dışı uygulamalar için desteklenmiyor.
Uzun süreli taşıyıcı belirteç Uzun süreli belirteçler, bir kullanıcının mevcut olması gerektirmez. Yöneticilerin sağlamayı ayarlarken kullanmaları 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 destek sağlar.
OAuth yetkilendirme kodu izni Erişim belirteçleri parolalardan çok daha kısa sürelidir ve uzun süreli taşıyıcı belirteçlere sahip olmayan otomatik bir yenileme mekanizmasına sahiptir. İlk yetkilendirme sırasında gerçek bir kullanıcının mevcut olması ve bir sorumluluk düzeyi eklemesi gerekir. Bir kullanıcının mevcut olması gerekir. Kullanıcı kuruluşta ayrılırsa belirteç geçersizdir ve yetkilendirmenin yeniden tamamlanması gerekir. Galeri uygulamaları için destek sağlar, ancak galeri dışı uygulamalar için desteklanmaz. Bununla birlikte, kullanıcı arabiriminde kısa süreli test amacıyla gizli belirteç olarak bir erişim belirteci s belirteci s belirteci s hizmetlerisiniz. Galeri dışı bir uygulamada OAuth kod izni desteği, galeri uygulamasında yapılandırılabilir kimlik doğrulaması/belirteç URL'leri desteğinin yanı sıra, biriktirme günlüğündedir.
OAuth istemci kimlik bilgileri ver Erişim belirteçleri parolalardan çok daha kısa sürelidir ve uzun süreli taşıyıcı belirteçlere sahip olmayan otomatik bir yenileme mekanizmasına sahiptir. Hem yetkilendirme kodu izni hem de istemci kimlik bilgileri izni aynı erişim belirteci türünü oluşturur, bu nedenle bu yöntemler arasında geçiş yapmak API için saydamdır. Sağlama tamamen otomatik hale edilebilir ve kullanıcı etkileşimi olmadan sessiz bir şekilde yeni belirteçler talep edilebilir. Galeri uygulamaları ve galeri dışı uygulamalar için desteklenmiyor. Destek, biriktirme sayfamızdadır.

Not

Sağlama yapılandırması özel uygulama kullanıcı arabiriminde belirteç AAD boş bırakmanız önerilmez. Oluşturulan belirteç öncelikli olarak test amacıyla kullanılabilir.

OAuth kod izni akışı

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

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

  • Belirteç değişimi URL'si, genellikle istemci kimlik doğrulaması ile bir erişim belirteci için yetkilendirme izni vermek için istemci tarafından bir URL.

  • İ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ı bir gizli bilgi değildir; kaynak sahibine açık ve istemci kimlik doğrulaması için tek başına kullanılmamalı.

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

Not

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

Not

OAuth v1, gizli istemci gizli olduğu için desteklenmiyor. OAuth v2 de desteklene.

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

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

OAuth kod izni akışını ayarlama

  1. Azure portal'da oturum Enterprise Uygulama Sağlama'ya gidin ve > > Yetkilendir'i seçin.

    1. Azure portal Yetkilendirme URL'sini (üçüncü taraf uygulama için oturum açma sayfası) yeniden yönlendiren bir bağlantı vardır.

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

    3. Üçüncü taraf uygulama, kullanıcı yeniden Azure portal yeniden yönlendirip onay kodunu sağlar

    4. Azure AD sağlama hizmetleri belirteç URL'sini çağırarak izin kodunu sağlar. Üçüncü taraf uygulama erişim belirteci, yenileme belirteci ve süre sonu tarihi ile yanıt verir

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

Not

Galeri dışı uygulamalarda OAuth'u kurmanız mümkün değildir, ancak yetkilendirme sunucunuzdan el ile bir erişim belirteci oluşturabilirsiniz ve bunu galeri dışı bir uygulamaya gizli belirteç olarak girebilirsiniz. Bu, OAuth kod verilmesini destekleyen uygulama galerisine eklemeden önce SCIM AAD SCIM istemcinizin uyumluluğunu doğrulamanıza olanak sağlar.

Uzun süreli OAuth taşıyıcı belirteçleri: Uygulamanız OAuth yetkilendirme kodu izin akışını desteklemezse, bunun yerine bir yöneticinin sağlama tümleştirmesi kurulumu için kullanabileceği uzun süreli bir OAuth taşıyıcı belirteci oluşturma. Belirteci kalıcı olması gerekir, yoksa belirteç süresi dolduğunda sağlama işi karantinaya alınır.

Ek kimlik doğrulama ve yetkilendirme yöntemleri için UserVoice'ta bize haber ver.

Ortak tümleştirmemizin farkındalığını ve talebini artırmaya yardımcı olmak için mevcut belgelerinizi güncelleştirmenizi ve pazarlama kanallarınıza tümleştirmeyi artırmanızı öneririz. Aşağıda başlatmayı desteklemek için tamamlamanız gereken bir denetim listesi etkinlikleri kümesi verilmiştir

  • Satış ve müşteri destek ekiplerinin tümleştirme özelliklerine farkında olduğundan, hazır olduğundan ve konuşa olduğundan emin olun. Ekiplerinizi bilgilendirin, SSS'leri s ile birlikte s alın ve satış malzemelerinize tümleştirmeyi dahil alın.
  • Ortak tümleştirmeyi, avantajları ve nasıl çalışmaya başlay olduğunu açıklayan bir blog gönderisi veya basın açıklaması derle. Örnek: Imprivata ve Azure Active Directory Basın Sürümü
  • Müşterilerinizle tümleştirmeyi desteklemek için Twitter, Facebook veya LinkedIn gibi sosyal medyanızı destekle. Gönderinizi yeniden @AzureAD retweet etmek için dahil etmek için emin olun. Örnek: Imprivata Twitter Gönderisi
  • Pazarlama sayfalarınızı/web sitenizi (tümleştirme sayfası, iş ortağı sayfası, fiyatlandırma sayfası vb.) oluş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 sayfası
  • Müşterilerin nasıl çalışmaya başlayabilirsiniz? ile ilgili bir yardım merkezi makalesi veya teknik belgeler oluşturun. Örnek: Faturalama + Microsoft Azure Active Directory tümleştirme.
  • Müşteri iletişimleri (aylık bültenler, e-posta kampanyaları, ürün sürüm notları) aracılığıyla yeni tümleştirme için müşterileri uyarın.

Sonraki adımlar