Nasıl yapılır · Sistem yöneticileri için
OpenID Connect ile tek oturum açma
Kişiler şirketinizin kimlik sağlayıcısıyla girsin: Keycloak, Microsoft Entra ID, Okta ya da herhangi bir OpenID Connect sağlayıcısı.
Bu rehberin sonunda hub'ın giriş sayfasında kimlik sağlayıcınız için bir Şununla oturum aç: … butonu bulunur. Kişiler şirket hesaplarıyla girer, Proxus ilk girişte kullanıcılarını oluşturur ve Proxus rollerini sağlayıcıdaki grupları belirler. Çok faktörlü giriş, parola kuralları ve hesap kilitleme sağlayıcıda yapılır.
Proxus, OpenID Connect destekleyen her sağlayıcıyla çalışır: Keycloak, Microsoft Entra ID, Okta, Auth0, Authentik, AD FS ve diğerleri. Active Directory'nize ya da LDAP'ınıza bağlı bir Keycloak, o hesapları Proxus'a getirir (Keycloak üzerinden Active Directory). Bir sağlayıcı olmadan AD kullanıcı adı ve parolasıyla giriş için Active Directory ve LDAP ile giriş sayfasına bakın.
Başlamadan önce
- Proxus'ta Administrators rolüne sahip bir kullanıcı ve hub'ın yapılandırmasına erişim (
Proxus-config.tomldosyası ya da konteynerin ortam değişkenleri). - Kimlik sağlayıcıda uygulama (client) kaydedebilen bir yönetici.
- Kişilerin hub'ı açtığı adres, örneğin
https://proxus.example.com. Sağlayıcı kişileri girişten sonra bu adrese geri gönderir.
Nasıl çalışır
- Kişi hub'ın giriş sayfasında Şununla oturum aç: … butonunu seçer ve sağlayıcıda oturum açar.
- Sağlayıcı kişiyi kim olduğu ve grupları bilgisiyle hub'a geri gönderir.
- Proxus, bu sağlayıcıdaki bu hesaba ait kullanıcıyı bulur. İlk seferde kullanıcıyı sağlayıcıdaki kullanıcı adıyla oluşturur.
- Proxus, kullanıcıya gruplarından eşlenen Proxus rollerini verir; artık üyesi olmadığı grupların eşlenen rollerini geri alır. Eşlemede adı geçmeyen roller, bir yöneticinin verdiği gibi kalır.
- Proxus'tan çıkış, sağlayıcıdaki oturumu da kapatır; aynı tarayıcıdaki bir sonraki kişi yeniden oturum açmak zorunda kalır.
Parolayla giriş, butonun yanında kullanılabilir kalır. Sağlayıcıya ulaşılamadığı durumlar için en az bir yönetici hesabını parolayla bırakın.
Adım 1: Proxus'u sağlayıcıya kaydedin
Yetkilendirme kodu akışıyla (authorization code) gizli anahtarlı bir uygulama kaydedin. Proxus'un ihtiyaç duyduğu değerler:
| Sağlayıcıdaki ayar | Değer |
|---|---|
| Redirect URI | https://<hub adresi>/signin-<scheme>, örneğin https://proxus.example.com/signin-keycloak |
| Çıkış sonrası redirect URI | https://<hub adresi>/signout-callback-<scheme> |
| Kapsamlar (scopes) | openid, profile, email |
| Gruplar | Kişinin gruplarını ya da rollerini taşıyan bir bilgi (claim); ID token'da ya da user info'da |
<scheme>, 2. adımda sağlayıcıya verdiğiniz kısa addır; örneğin keycloak ya da entra.
Keycloak
En hızlısı: şablonu içe aktarın. proxus-hub-client.json dosyasını indirin. Realm'de Clients > Import client'ı açın, dosyayı seçin ve Save'e basın. Dosyada secret ve adres yoktur: Keycloak yeni bir secret oluşturur, adresleri siz eklersiniz.
- İçe aktarılan client'ta Settings'i açın ve yukarıdaki tablodaki redirect URI'yi ve çıkış sonrası redirect URI'yi kendi merkez sunucunuzun adresiyle girin.
- Credentials sekmesinden client secret'ı kopyalayın.
- Kişileri, 2. adımdaki rol eşlemesinde adını kullandığınız gruplara ekleyin (ya da onlara realm rolleri verin).
Şablon hem kişinin gruplarını (groups claim'i, yolsuz) hem de realm rollerini (roles claim'i) gönderir; Proxus ikisini de okur. PKCE'li (S256) authorization code akışını kullanır ve parola ile token almayı kapatır.
Elle, aynı ayarlar:
- Realm'de Clients bölümünü açın ve Create client'ı seçin. Client tipi OpenID Connect, client kimliği örneğin
proxus-hub. - Client authentication'ı açın ve Standard flow'u açık bırakın. Advanced altında Proof Key for Code Exchange Code Challenge Method değerini
S256yapın. - Yukarıdaki tablodaki redirect URI'yi ve çıkış sonrası redirect URI'yi girin.
- Credentials sekmesinden client secret'ı kopyalayın.
- Grupları ekleyin: Client scopes >
proxus-hub-dedicated> Add mapper > By configuration > Group Membership. Token claim namegroups, Full group path kapalı, Add to ID token ve Add to userinfo açık. proxus-adminsveproxus-operatorsgibi gruplar oluşturun ve kişileri bu gruplara ekleyin (ya da Active Directory gruplarınızı bunlara eşleyin).
Issuer adresi (Proxus'taki Authority) https://<keycloak adresi>/realms/<realm> biçimindedir.
Microsoft Entra ID
App registrations altında bir uygulama kaydedin, bir Web redirect URI'si ve bir client secret ekleyin. Token configuration altında groups bilgisini ekleyin. Entra grup kimliklerini gönderir; bu yüzden rol eşlemesinde grup kimlikleri kullanılır. Authority https://login.microsoftonline.com/<tenant kimliği>/v2.0 biçimindedir.
Okta
Yukarıdaki redirect URI'leriyle bir OIDC - Web Application uygulama entegrasyonu oluşturun. Yetkilendirme sunucusuna bir groups bilgisi ekleyin (filtre örneğin Starts with proxus-). Authority https://<Okta alanınız>/oauth2/default biçimindedir.
Adım 2: Sağlayıcıyı Proxus'a ekleyin
Sağlayıcıyı Proxus-config.toml dosyasına ya da aynı anahtarları ortam değişkeni olarak ekleyin:
[[Authentication.Oidc.Providers]]
Scheme = "keycloak"
DisplayName = "Keycloak"
Authority = "https://sso.example.com/realms/plant"
ClientId = "proxus-hub"
ClientSecret = "<client secret>"
DefaultRoles = ["Default"]
[Authentication.Oidc.Providers.RoleMap]
proxus-admins = ["Administrators"]
proxus-operators = ["Operator"]environment:
Authentication__Oidc__Providers__0__Scheme: keycloak
Authentication__Oidc__Providers__0__DisplayName: Keycloak
Authentication__Oidc__Providers__0__Authority: https://sso.example.com/realms/plant
Authentication__Oidc__Providers__0__ClientId: proxus-hub
Authentication__Oidc__Providers__0__ClientSecret: ${OIDC_CLIENT_SECRET}
Authentication__Oidc__Providers__0__DefaultRoles__0: Default
Authentication__Oidc__Providers__0__RoleMap__proxus-admins__0: Administrators
Authentication__Oidc__Providers__0__RoleMap__proxus-operators__0: OperatorHub'ı yeniden başlatın. Giriş sayfasında artık Oturum aç'ın altında Şununla oturum aç: Keycloak (1) butonu görünür.
Tüm anahtarlar Yapılandırma anahtarları sayfasında listelenir.
Client secret'ı paylaşılan dosyalarda tutmayın: ortam değişkeni olarak verin ya da yapılandırma klasörünü yalnızca hub'ın okuyabileceği şekilde koruyun.
Birden fazla sağlayıcı tanımlanabilir: kendi Scheme değeriyle bir [[Authentication.Oidc.Providers]] bloğu daha ekleyin (ortam değişkenlerinde 1 indeksi). Her biri kendi butonunu alır.
Adım 3: Grupları rollere eşleyin
RoleMap, bir sağlayıcı grubunu (ya da rolünü) bir veya birden fazla Proxus rolüne bağlar. Adlar büyük-küçük harf ayrımı olmadan karşılaştırılır; /proxus-admins gibi bir Keycloak grup yolu proxus-admins ile eşleşir.
- Eşlenen roller sağlayıcıyı izler. Kişi her girişte üyesi olduğu grupların eşlenen rollerini alır, ayrıldığı grupların eşlenen rollerini kaybeder.
- Diğer roller kalır. Hiçbir grubun eşlemediği bir rol, örneğin bir yöneticinin elle verdiği rol, girişle asla geri alınmaz.
DefaultRoleskullanıcı oluşturulurken bir kez verilir.- Eşlemede adı geçen ama Proxus'ta olmayan bir rol atlanır ve log'a yazılır.
Yerleşik rollerin neye izin verdiği için Kullanıcılar ve roller sayfasına bakın.
Adım 4: Test edin
- Hub'ı gizli bir tarayıcı penceresinde açın ve sağlayıcının butonunu seçin.
- Eşlenen bir gruptaki bir hesapla oturum açın.
- Bir yönetici olarak Güvenlik > Kullanıcılar ekranını açın. Yeni kullanıcı eşlenen rolleriyle listelenir ve yalnızca sağlayıcı üzerinden oturum açar.
- Çıkış yapın ve butonu yeniden seçin: sağlayıcı parolayı yeniden sorar.
Mevcut kullanıcılar
Bir giriş, oluşturmadığı bir Proxus kullanıcısını asla devralmaz. Kişinin aynı kullanıcı adıyla zaten bir Proxus kullanıcısı varsa, sağlayıcıyla ilk girişi reddedilir ve log'a yazılır; LinkExistingUsers = true yaparsanız ilk giriş sağlayıcı hesabını o kullanıcıya bağlar ve kişi rollerini korur. Bunu yalnızca kullanıcı adlarına güvendiğiniz bir sağlayıcıyla kullanın.
Yalnızca bir yöneticinin önceden bağladığı kişilerin girmesine izin vermek için CreateUsers = false yapın.
API, MCP ve servis hesapları
Programlar da aynı sağlayıcıyı kullanabilir: bir betik, bir veri platformu ya da bir yapay zekâ asistanı sağlayıcıdan bir access token alır ve onu bir Proxus API token'ıyla değiştirir. Hiçbir Proxus parolası paylaşılmaz.
Sağlayıcıda access token'ların hedef kitlesine (audience) Proxus'u ekleyin. Keycloak'ta: Client scopes >
proxus-hub-dedicated> Add mapper > By configuration > Audience, Included Client Audienceproxus-hub, Add to access token açık. Bir kişiye bağlı olmayan programlar için client'ta Service accounts roles'u açın ve client credentials akışını kullanın.Sağlayıcının access token'ını bir Proxus token'ıyla değiştirin:
curl -X POST https://proxus.example.com/api/Authentication/Exchange \ -H "Content-Type: application/json" \ -d '{"accessToken":"<sağlayıcıdan alınan access token>"}'Yanıt, REST API girişindeki gibi bir Proxus token'ıdır. Kişi ya da servis hesabı, giriş sayfasındaki girişle tamamen aynı şekilde bulunur ya da oluşturulur ve eşlenen rollerini alır. Servis hesabı, sağlayıcının verdiği kullanıcı adıyla oluşturulur; örneğin
service-account-proxus-hub.Bir MCP istemcisi de aynı yolla oturum açar: kullanıcı adı ve parola yerine
accessTokenileauth_login. Bkz. MCP.
Token, sağlayıcı tarafından imzalanmış, süresi içinde, sağlayıcının Authority adresinden gelmiş olmalı ve hedef kitlesinde ApiAudiences değerlerinden birini (varsayılan olarak ClientId) taşımalıdır. Bunun dışındaki her token 401 ile reddedilir. Bir sağlayıcı için değişimi kapatmak üzere AcceptApiTokens = false yapın.
Çok faktörlü giriş
Çok faktörlü giriş, passkey'ler ve parola sıfırlama, kişi Proxus'a dönmeden önce sağlayıcıda yapılır. Bunları orada açın: Keycloak'ta örneğin OTP ya da WebAuthn'i zorunlu eylem (required action) olarak ya da tarayıcı akışında ekleyin. Proxus'ta bunun için bir ayar gerekmez.
Formlardaki elektronik imzalar
Sağlayıcının oluşturduğu bir kullanıcının Proxus parolası yoktur. Elektronik imza isteyen formlar bu kişilerden bunun yerine bir kez belirledikleri imza PIN'ini ister. Kapatılmış bir kullanıcı sağlayıcı üzerinden de giremez.
Bir yol altında ya da proxy arkasında hub
- Siemens Industrial Edge ve yol tabanlı kurulumlar.
/proxusgibi bir yol altında redirect URI'lerhttps://<cihaz>/proxus/signin-<scheme>vehttps://<cihaz>/proxus/signout-callback-<scheme>olur. - Ters proxy. Proxy, hub'ın dönüş adresini kişilerin kullandığı adresle kurabilmesi için
X-Forwarded-ProtoveX-Forwarded-Hostbaşlıklarını iletmelidir. - Birden fazla hub örneği (Kubernetes). Arayüzün geri kalanında olduğu gibi oturumları tek bir örnekte tutun (sticky sessions).
Bir şey çalışmadığında
| Ne görüyorsunuz | Neden | Ne yapmalı |
|---|---|---|
| Sağlayıcı butonu yok. | Sağlayıcı kaydı eksik ya da hatalı. | Hub log'u başlangıçta kaydı ve sorunu söyler, örneğin ClientId is missing. |
| Sağlayıcı redirect URI'nin geçersiz olduğunu söylüyor. | Sağlayıcıda kayıtlı adres, hub'ın gönderdiğinden farklı. | Tam olarak https://<hub adresi>/signin-<scheme> kaydedin; hub bir yol altındaysa yoluyla birlikte. |
| Sağlayıcıda oturum açtıktan sonra yine giriş sayfası geliyor. | Proxus hesabı reddetti. | Hub log'u nedenini söyler: aynı adda bir Proxus kullanıcısı var (LinkExistingUsers), CreateUsers kapalı ya da kullanıcı kapatılmış. |
| Kişide olması gereken roller yok. | Grup bilgisi gelmiyor ya da başka bir adla geliyor. | Sağlayıcının groups bilgisini ID token'da ya da user info'da gönderdiğini kontrol edin ya da RoleClaims değerini kullandığı ada ayarlayın. |
Authority must use https. | Sağlayıcı düz HTTP üzerinde. | HTTPS kullanın. Yalnızca test ortamında RequireHttpsMetadata = false yapın. |
Sırada ne var
- Kullanıcılar ve roller
- UNS yetkileri: kişileri tesisin bölümleriyle sınırlayın
- Güvenlik: sıkılaştırma kontrol listesi
Bu sayfa işinize yaradı mı?
Proxus'u değerlendiriyor musunuz? 30 dakikalık teknik görüşmede kendi makinelerinizle görün.