8.8.3. Harici kaynaklar tarafından kullanım için ek arayüz
1C:Enterprise tarafından uygulanan OpenID sağlayıcısına, bazı özellikler göz önüne alınarak standart OpenID 2.0 protokolü kullanılarak erişilebilir:
- Etkileşimli ve etkileşimli olmayan kimlik doğrulama taleplerinde (openid.mode parametresi checkid_immediate veya checkid_setup değerine eşittir), openid.claimed_id ve openid.identity parametreleri https://specs.openid.net/auth/2.0/identifier_select olarak ayarlanmalıdır. Bu değerin ayarlanması, kullanıcı kimliğinin sağlayıcı tarafından belirlendiği anlamına gelir.
- openid.claimed_id ve openid.identity parametrelerinin diğer değerleriyle etkileşimli olmayan kimlik doğrulama talepleri, sağlayıcının openid.claimed_id ve openid.identity değerlerini belirlediği etkileşimli kimlik doğrulama talebiyle sonuçlanır.
OpenID sağlayıcısı, etkileşimli kimlik doğrulama için kullanıcı adı ve parola girmeye yönelik bir form uygular.
Uygulama ayrıca bir OpenID sağlayıcısının üçüncü taraf sistemler tarafından kullanımını basitleştiren ve aşağıda açıklanan bir dizi komut sağlar. Komutları tanımlarken aşağıdaki kısaltmalar kullanılır:
- ProviderIB. Bir OpenID sağlayıcısının Infobase'i.
- RPID. Bir OpenID Bağlı Tarafının Infobase'i.
İstek parametreleri UTF-8 kodlamasında iletilir.
OpenID Provider XRDS Belgesi isteği
Açıklama:
OpenID sağlayıcısının özelliklerini açıklayan bir XRDS belgesi alır.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op
Döndürülen:
Bir OpenID sağlayıcısının özelliklerini açıklayan XRDS belgesi
OpenID Bağlı Tarafının XRDS Belgesi isteği
Açıklama:
OpenID Bağlı Tarafının özelliklerini açıklayan bir XRDS belgesi alır.
Söz dizimi:
https://example.com/RPIB/e1cib/oid2rp
Döndürülen:
Bir OpenID bağlı tarafının özelliklerini açıklayan XRDS belgesi
Kimlik doğrulama isteği
Açıklama:
Kimlik doğrulama isteği gerçekleştirir.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op?cmd=auth
Parametreler:
openid.auth.user zorunlu
OpenID sağlayıcısı veritabanında belirtildiği gibi kullanıcı adı.
openid.auth.pwd zorunlu
Kullanıcı parolası.
openid.auth.2FCode isteğe bağlı
İkinci kimlik doğrulama faktörü kodu
opeind.auth.short isteğe bağlı
Parametre true olarak ayarlanırsa kimlik doğrulama web tarayıcısının oturumu içinde gerçekleştirilir, ancak ömrü OpenID sağlayıcı Infobase'inin yayınını tanımlayan default.vrd dosyasının lifetime parametresinin değerinden fazla olamaz.
openid.auth.check isteğe bağlı
Bu isteğe verilen yanıt kontrol edilmelidir (parametre true olarak ayarlanır). Bu yalnızca openid.return_to parametresi belirtilmişse anlamlıdır.
openid.return_to isteğe bağlı
İstek işlendikten sonra açılan hedef URL'yi içerir.
Döndürülen:
openid.return_to parametresi belirtilmezse aşağıdaki HTTP durum koduyla boş bir belge döndürülür:
- 200. Kimlik doğrulama başarılı.
- 400. Kimlik doğrulama tamamlanmadı.
- 402. Kullanıcı adı ve parola ile kimlik doğrulaması başarılı bir şekilde tamamlandı. İkinci faktör kodu gereklidir. Yanıt, aşağıdaki değerlerden birini içerebilen 2FAType adlı bir üst bilgiye sahip olmalıdır:
- secretCode. Kimlik doğrulama için bir gizli kod girilmelidir.
- external. İkinci faktör, sağlayıcı tarafında yürütülür.
Böyle bir yanıt kodunun alındığı sırada, ikinci kimlik doğrulama faktörünü yürütmek için bir istek OpenID sağlayıcısı tarafından ikinci kimlik doğrulama faktörünün sağlayıcısına halihazırda gönderilmiş durumdadır.
OpenID sağlayıcısı ikinci kimlik doğrulama faktörünün çalıştırılması gerektiğini tespit ettiğinde kullanıcı adı ve parolayı kontrol edeceği ancak bir kullanıcı oturumu oluşturmayacağı anlaşılmaktadır. Oturum bir sonraki erişimde oluşturulacak ve kullanıcı adı, parola ve ikinci faktör tekrar kontrol edilecektir.
Yanıt 402'yi aldıktan sonra aşağıdakileri yapın:
- Bir kod (secretCode) kullanarak kimlik doğrulaması yapılması durumunda, gizli kodu isteğe ek bir parametre olarak ekleyin.
- Sağlayıcı tarafında (external) kimlik doğrulama olması durumunda, hiçbir şey eklemeyin. Sunucu kimlik doğrulama kontrolü için istek gönderir ve ikinci faktörü kontrol eder.
openid.return_to parametresi belirtilirse kullanıcı parametrede belirtilen adrese yönlendirilir. Kimlik doğrulama başarılı olursa aşağıdaki parametreler URL'ye eklenir:
- Değer olarak kullanıcı adıyla birlikte openid.auth.user.
- Bu yanıtı doğrulamak için değer olarak tek seferlik bir kimlikle birlikte openid.auth.uid. Bu parametre, kimlik doğrulama isteğinde openid.auth.check parametresi belirtilmişse belirtilir.
Başarısız kimlik doğrulama durumunda, herhangi bir parametre eklemeden belirtilen URL'ye gidin.
Kimlik doğrulama kontrolü için OpenID sağlayıcı isteği
Açıklama:
Kimlik doğrulama isteğini yürütür.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op/2FACheck?user=xxx
Parametreler:
user zorunlu
Kimlik doğrulaması kontrol edilmesi gereken kullanıcı adı (xxx).
Döndürülen:
Bir HTTP durum koduyla bir boş belge döndürülür:
- 200. Kimlik doğrulama başarılı, kullanıcının kimliği ikinci faktör kullanılarak doğrulandı.
- 400. Kimlik doğrulama aşağıdaki nedenlerden biri nedeniyle tamamlanmadı:
- user parametresi belirtilmedi.
- Bu istekten önce düzenli bir kimlik doğrulama isteği olmadı.
- Kimlik doğrulama hatası.
- Kimlik doğrulama zaman aşımına uğradı.
Aktif kimlik doğrulamasını doğrulamak için OpenID sağlayıcı isteği
Açıklama:
Kimlik doğrulaması kontrolü gerçekleştirilir.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op?cmd=lookup
Parametreler:
openid.return_to zorunlu
İstek işlendikten sonra açılan hedef URL'yi içerir.
openid.auth.check isteğe bağlı
Bu isteğe verilen yanıt kontrol edilmelidir (parametre true olarak ayarlanır). Bu, yalnızca openid.return_to parametresi belirtilmişse anlamlıdır.
Döndürülen:
openid.return_to parametresinde belirtilen URL'ye yönlendirme. Kimlik doğrulama başarılı olursa aşağıdaki parametreler URL'ye eklenir:
- Değer olarak kullanıcı adıyla birlikte openid.auth.user.
- Bu yanıtı doğrulamak için değer olarak tek seferlik bir kimlikle birlikte openid.auth.uid. Bu parametre, kimlik doğrulama isteğinde openid.auth.check parametresi belirtilmişse belirtilir.
Başarısız kimlik doğrulama durumunda, herhangi bir parametre eklemeden belirtilen URL'ye gidin.
Bir OpenID sağlayıcısı isteğini kontrol etme
Açıklama:
İstekte openid.auth.check parametresi true olarak ayarlanmışsa cmd=auth ve cmd=lookup istekleri için bir OpenID Sağlayıcı yanıtını denetler.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op?cmd=check
Parametreler:
openid.auth.user zorunlu
Aynı adlı istek parametresinden alınan kullanıcı adı.
openid.auth.uid zorunlu
Aynı adlı istek parametresinden elde edilen tek seferlik OpenID sağlayıcı yanıt kimliğinin değeri.
Döndürülen:
Aşağıdaki içeriğe sahip metin/düz türünde bir belge döndürülür:
- is_valid:true. Yanıt, gerçekten kullanılan OpenID sağlayıcısı tarafından oluşturulmuştur. Bu durumda, HTTP durum kodu 200'dür.
- is_valid:false. Kontrol edilen yanıtı kullanılan OpenID sağlayıcısı oluşturmamıştır. Bu durumda, HTTP durum kodu 400'dür.
Bağlı olan taraf için kimlik doğrulamasını iptal etme isteği
Açıklama:
OpenID sağlayıcı URL'si bilinmiyorsa kimlik doğrulamasını iptal eder. Geçerli oturumu sonlandırır, OpenID sağlayıcısında kimlik doğrulamasını iptal eder ve web istemcisini yeniden başlatır. Web istemcisi OpenID sağlayıcısı için kimlik doğrulama iptal isteğini tamamlar.
Söz dizimi:
https://example.com/RPIB/e1cib/oid2op?cmd=logout
Bir OpenID sağlayıcısı için kimlik doğrulamasını iptal etme isteği
Açıklama:
Belirtilen OpenID sağlayıcısında kimlik doğrulamayı iptal eder.
Söz dizimi:
https://example.com/ProviderIB/e1cib/oid2op?cmd=logout
Parametreler:
openid.return_to isteğe bağlı
İstek işlendikten sonra açılan hedef URL'yi içerir.
Döndürülen:
openid.return_to parametresi belirtilmişse kullanıcı belirtilen URL'ye yönlendirilir, aksi takdirde HTTP durum kodu 200'e eşit olan bir boş yanıt döndürülür.