PowerFlex: OpenID Connect (OIDC) kullanarak Microsoft Azure ile PowerFlex çoklu oturum açma ayarlama
Summary: Bu makale, OIDC kullanarak Microsoft Azure Entra Kimliği ile SSO için PowerFlex Müşteri Kimliği ve Erişim Yönetimi'ni (CIAM) yapılandırma konusunda size yol gösterir.
Instructions
Bu makalede sertifika kurulumu, IdP ve servis sağlayıcı (SP) yapılandırması, belirteç değişimi ve API erişim doğrulaması dahil olmak üzere OIDC kullanarak Microsoft Azure Entra ID ile SSO için PowerFlex Müşteri Kimliği ve Erişim Yönetimi (CIAM) yapılandırma adımları açıklanmaktadır. Bu yapılandırma, SSO özelliklerinden yararlanmanızı mümkün kılar. Hem PowerFlex hem de Microsoft Azure'da yapılandırma değişiklikleri gerektirir.
Bu makale, PowerFlex kullanan yöneticilere ve güvenlik personeline yöneliktir.
PowerFlex CIAM, merkezi kimlik doğrulama ve güvenli API erişimi sağlamak için Microsoft Azure Entra ID de dahil olmak üzere OIDC uyumlu IdP'lerle entegre olur.
Bu makalede, REST API aracılığıyla Microsoft Azure ile PowerFlex çoklu oturum açmayı ayarlamak için adım adım bir süreç sunulmaktadır. Üst düzey adımların listesi aşağıda verilmiştir:
- CIAM'ın başlatılması ve PowerFlex'in bir OIDC Servis Sağlayıcısı (SP) olarak yapılandırılması
- Microsoft Azure Entra Kimliğini OIDC Kimlik Sağlayıcısı (IdP) olarak kaydetme
- Gerekli CA sertifikalarını (DigiCert/GlobalSign) CIAM'a ekleyin
- Microsoft Azure uygulama taleplerini, yeniden yönlendirme URI'lerini ve izinleri yapılandırma
- CIAM OAuth2 istemcileri ve belirteç değişimi eşlemeleri oluşturma
- Bir Microsoft Azure belirteci edinin, bunu bir PowerFlex belirteci ile değiştirin ve REST API erişimini doğrulayın
Terminoloji
Aşağıdaki tabloda, bu işlemi tamamlamak için gereken önemli terimler ve kavramlar açıklanmaktadır:
| Terim | Açıklama |
| Yönetim sanal makinesi (MVM) IP adresi | PowerFlex Manager ve yönetim hizmetlerini barındıran MVM IP adresleri. Bir MVM depolama veri sunucusu (SDS) düğümü PowerFlex Manager kullanıcı arayüzünde oturum açarak MVM IP adreslerini bulabilirsiniz. Sistem Bileşenleri>MVM'sine> gidin. Örneğin, 10.2xx.3xx.184, 10.2xx.3xx.185, 10.2xx.3xx.186 |
| Depolama veri sunucusu (SDS) | MVM'leri barındıran depolama veri sunucusu (SDS) düğümü. |
| Giriş IP adresi | rke2-ingress-nginx-controller (yük dengeleyici/giriş uç noktası) için harici IP |
| Müşteri Kimliği ve Erişim Yönetimi (CIAM) | OAuth2/OIDC için PowerFlex Müşteri Kimliği ve Erişim Yönetimi hizmetleri |
| Servis sağlayıcı (SP) | Kimlik sağlayıcı (IdP)|Servis sağlayıcı (PowerFlex/Keycloak tarafı) ve kimlik sağlayıcı (Microsoft Azure Entra Kimliği) |
Önkoşullar
Microsoft Azure Entra Kimliğini PowerFlex ile bağlamak için kullanılan bir otomasyon komut dosyası (oidc_azure.tar) vardır.
Komut dosyası bir tar dosya biçimindedir ve indirilmeli ve MVM'nize kopyalanmalıdır:
oidc_azure kopyalamak için. tar dosyası arıyorsanız, PowerFlex yönetim sanal makinesine yönetici erişiminiz olmalıdır.
İşte dosya: oidc_azure.tar
Dışa aktarılan değişkenler bu işlemdeki adımlar ve betikler arasında yeniden kullanılacağı için aşağıdaki ekran yakalamada komutları çalıştırmanız gerekir.
sudo -i

Her komut ne işe yarar?
- Bu '
kubectl get svc -A | grep "sso " | awk '{print $4}''komutu, Kubernetes kümesindeki SSO hizmetinin küme IP adresini döndürür. - Bu '
curl -k --location --request POST "https://${SSO_IP}:8080/rest/auth/login" --header 'Accept: application/json' --header 'Content-Type: application/json' --data '{"username": "admin","password": "Scaleio123!" }' | jq -r .access_token' komutu, SSO REST API'yi kullanarak PowerFlex'te oturum açar ve PowerFlex hizmetlerine sonraki API çağrıları için kullanılan bir erişim belirteci (JWT) alır. - Bu'
kubectl get svc -A | grep -m1 rke2-ingress-nginx-controller | sort | awk '{print $5}''komutu, genellikle dış trafik için kullanılan yük dengeleyici veya giriş denetleyicisi IP'si olan rke2-ingress-nginx-controller hizmetinin dış IP adresini döndürür.
Bu komutlar çalıştırıldığında, aşağıdaki değişkenler dışa aktarılır:
export SSO_IP=$(kubectl get svc -A | grep "sso " | awk '{print $4}')
export ASMUI_PASS=$(kubectl get secret pfxm-asmui-creds -o json -n powerflex \ | jq '.data | map_values(@base64d)' \ | jq -r '.["keycloak-password"]')
export PM_TOKEN=$(curl -k --location --request POST "https://${SSO_IP}:8080/rest/auth/login" \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data "{\"username\": \"asmuiuser\",\"password\": \"$ASMUI_PASS\"}" | jq -r .access_token)
export IN_IP=$(kubectl get svc -A | grep -m1 rke2-ingress-nginx-controller | sort | awk '{print $5}')
1. CIAM'ın başlatılması ve PowerFlex'in bir OIDC Servis Sağlayıcısı (SP) olarak yapılandırılması
Bu adım, OpenID Connect (OICD) kullanarak CIAM i PowerFlex ile entegre etme sürecindeki başlangıç noktasıdır. PowerFlex için SSO CIAM yapılandırması başlatılır.
API: POST /rest/v1/sso-ciam/init
Komut:
curl -k -X POST https://$IN_IP/rest/v1/sso-ciam/init --header 'Accept: application/json' --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Komut dosyası: ./init.sh
Çıkış: Bir tamsayı, CIAM kiracı kimliği, yani "2"
2. OIDC Servis sağlayıcısı olarak Keycloak ile PowerFlex i yapılandırın.
Bu adım, PowerFlex i Keycloak (veya başka bir IdP) ile bir OIDC Servis Sağlayıcısı olarak kaydeder ve yapılandırır ve OpenID Connect kullanarak güvenli SSO kimlik doğrulamasını etkinleştirir.
API işlemi: YAYINLA /rest/v1/oidc-sp-config
Komut:
curl -kL -X POST --url https://$IN_IP/rest/v1/oidc-sp-config --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" --data '{
"sp_id": "powerflex-$IN_IP",
"redirect_uri": "https://$IN_IP/auth/realms/powerflex/protocol/openid-connect/auth",
"logout_uri": "https://$IN_IP/auth/realms/powerflex/protocol/openid-connect/logout",
"required_claims": ["email"],
"keycloak_settings": {
"config": {
"clientAuthMethod": "client_secret_basic",
"pkceEnabled": "true",
"useJwksUrl": "true",
"validateSignature": "true"
},
"first_broker_login_flow_alias": "first broker login",
"post_broker_login_flow_alias": null,
"link_only": null,
"store_token": true,
"add_read_token_role_on_create": true,
"trust_email": true
},
"days_to_store_state_code_verifier": 1}'
Komut dosyası: ./add_oidc_sp.sh
Çıktı (kesilmiş): Yeni servis sağlayıcı
{"id":"00000000-0000-0000-0000-000000000000","sp_id":"powerflex-10.247.39.179","redirect_uris":["https://10.247.39.179/auth/realms/powerflex/protocol/openid-connect/auth"],"logout_uri":"https://10.247.39.179/auth/realms/powerflex/protocol/openid-connect/logout" ... },
2.1 OIDC hizmet sağlayıcısını listeleme.
Bu adım, geçerli OIDC servis sağlayıcı yapılandırmasını PowerFlex'ten alır.
Komut:
curl -kL https://$IN_IP/rest/v1/oidc-sp-config --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" | jq -r '.results[]'
Komut dosyası: ./list_oidc_sp.sh
Örnek çıktı (kesilmiş): Önceki adımda oluşturulan bir servis sağlayıcı.
{"results":[{"id":"00000000-0000-0000-0000-000000000000","sp_id":"powerflex-10.247.39.179",...}]
3. CIAM hizmetleri için sertifika yetkilisini PowerFlex e ekleyin.
Bu adım, CIAM sistemiyle güvenli iletişimi doğrularken hangi sertifika yetkilisine güvenmesi gerektiği konusunda PowerFlex'i bilgilendirmeyi içerir. CIAM hizmetleri için iki sertifika vardır:
- DigiCert, güvenilir bir Sertifika Yetkilisidir (CA). Microsoft Azure hizmetleri (Microsoft Azure AD, OIDC uç noktaları ve Microsoft API'leri gibi), iletişimin güvenliğini sağlamak için DigiCert tarafından verilen SSL/TLS sertifikalarını kullanır.
- GA2 (GlobalSign veya benzeri kök/ara) sertifikaları, Microsoft Azure'un kimlik uç noktalarını doğrulayan sertifika zincirinin bir parçasıdır. Şunları sağlarlar:
- OIDC meta veri URL'si (https://login.microsoftonline.com/...)(Dış Bağlantı) ve belirteç uç noktaları güvenilirdir.
- PowerFlex ve Microsoft Azure IdP arasında güvenli HTTPS iletişimi.
Bu işlem, CIAM'nin Microsoft Azure uç noktalarına güvenmesini sağlar.
Aşağıdaki komut, yeni satırların "\n" ile değiştirildiği PEM ile kodlanmış sertifikalara sahip dosyaları kullanır. Temel olarak, böyle bir dosyada yalnızca bir satır vardır.
Örneğin:
-----BEGIN CERTIFICATE-----
\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-
----END CERTIFICATE-----
API: POST /api/v1/CIAM/<ciam_id>/x509-certificates
Komut:
CA=`cat $1`
curl -kvvL -X POST https://$IN_IP//Api/V1/CIAM/<return_value_from_init_ciam>/x509-certificates --header "Authorization: Bearer ${PM_TOKEN}" --data-raw "
{
\"type\": \"CA\",
\"service\": \"ALL\",
\"certificate_format\": \"PEM\",
\"certificate\": \"$CA\"
}"
Komut dosyası: ./add_cert.sh <certificate_pem_file>
Örnek çıktı (kesilmiş):
cat digicert_ca.pem
-----BEGIN CERTIFICATE-----\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQs;wCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4p
...
Fsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n
delladmin@lglou184:~/oidc_testing> cat digicert_g2.pem
-----BEGIN CERTIFICATE-----\nMIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\nMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI\n2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx\n1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ\nq2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz\ntCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ\nvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP\nBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV\n5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY\n1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4\nNeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG\nFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91\n8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe\npLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl\nMrY=\n-----END CERTIFICATE-----\n
--------------------------------------------------------------------------------------------------------------------------
./add_cert.sh digicert_ca.pem
{"id":"b5c3d51a-9161-4515-a741-4a197a348cf9","certificate":"-----BEGIN CERTIFICATE-----...\nMIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\nd3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD\nQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT\nMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\nb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG\n9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB\nCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97\nnh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt\n43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P\nT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4\ngdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO\nBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR\nTLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw\nDQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr\nhMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg\n06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF\nPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls\nYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk\nCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=\n-----END CERTIFICATE-----\n","subject":"C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA","common_name":"DigiCert Global Root CA","issuer":"C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert Global Root CA","organization":"DigiCert Inc","organizational_unit":"www.digicert.com","country":"US","valid_from_timestamp":"2006-11-10T00:00:00Z","valid_to_timestamp":"2031-11-10T00:00:00Z","key_usage":"Digital Signature, Cert Sign, CRL Sign","type":"CA","service":"ALL","is_self_signed":true,"is_current":true,"is_valid":true,"cert_fingerprint":"43:48:A0:E9:44:4C:78:CB:26:5E:05:8D:5E:89:44:B4:D8:4F:96:62:BD:26:DB:25:7F:89:34:A4:43:C7:* Connection #0 to host 10.247.39.179 left intact
01:61","version":3,"serial_number":10944719598952040374951832963794454346,"signature_algorithm":"RSA","signature_hash_algorithm":"SHA-1","public_key":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKP\nC3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtx\nRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmF\naG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvU\nX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrT\nC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOv\nJwIDAQAB\n-----END PUBLIC KEY-----\n"}
3.1 Sertifikaların eklendiğini ve listelendiğini doğrulama.
Bu adım, sertifikaların eklendiğini ve listelendiğini doğrular.
Komut:
curl -kL https://$IN_IP/Api/V1/CIAM/2/x509-certificates --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Not: https://$IN_IP//Api/V1/CIAM/2/x509-certificate - işte 2. adımdaki init.sh'den 1 numara.
Komut dosyası: ./list_certs.sh
Örnek çıktı (kesilmiş):
{"results":[{"id":"4a4d7f6b-251c-41a6-b304-783ed6d5fbc2","certificate":"-----BEGIN ....-----END PUBLIC KEY-----\n"}]}
4. Microsoft Azure Entra Kimliğini OIDC Hizmeti (IdP) Olarak Kaydetme
Bu adım, OpenID Connect (OIDC) kullanarak Microsoft Azure Entra ID'yi PowerFlex için harici kimlik sağlayıcısı olarak kaydeder ve kullanıcıların yerel PowerFlex kimlik bilgilerine güvenmek yerine Microsoft Azure üzerinden kimlik doğrulamasını sağlar.
Değişken:
- Kiracı Kimliği: Kiracı Kimliği, kimlik sağlayıcının ait olduğu Microsoft Azure Active Directory kiracısını tanımlar. Bunu, uygulamanın Microsoft Azure'daki ana ekranının Genel Bakış sayfasında bulabilirsiniz.
- KK_ID: KK Kimliği, Microsoft Azure uygulamasının istemci kimliğini tanımlar.
- KK_SECRET: KK gizli dizisi, Microsoft Azure'un istemci gizli dizisini tanımlar.
API: POST /rest/v1/oidc-services
curl -kvvL --request POST \
--url "https://$IN_IP/rest/v1/oidc-services" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data "{
\"name\": \"azure\",
\"is_enabled\": true,
\"idp_metadata_url\": \"https://login.microsoftonline.com/<Tenant_id>/v2.0/.well-known/openid-configuration\",
\"claims_mapper\": [
{ \"name\": \"email\", \"value\": \"email\" },
{ \"name\": \"given_name\", \"value\": \"firstName\" },
{ \"name\": \"preferred_username\", \"value\": \"username\" },
{ \"name\": \"family_name\", \"value\": \"lastName\" }
],
\"client_id\": \"$KK_ID\",
\"client_secret\": \"$KK_SECRET\",
\"scopes\": [\"openid\",\"profile\",\"email\",\"offline_access\"],
\"pkce_enabled\": true,
\"code_challenge_method\": \"S256\",
\"idp \"idp_type\": \"AzureEntraID\"KK_ID=b151947c-b514-4997-a369-a9b76f26b050
KK_SECRET=tk_8Q~QYTj1FQYN2chWovu.M5Ph3YnIVzLwRJcoZ
TENANT_ID=945c199a-83a2-4e80-9f8c-5a91be5752dd
curl -kL -X POST --url https://$IN_IP/rest/v1/oidc-services --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" \
--data \
"{ \"name\": \"azure\", \"is_enabled\": true, \"idp_metadata_url\": \"https://login.microsoftonline.com/${TENANT_ID}/v2.0/.well-known/openid-configuration\",
\"claims_mapper\": [ { \"name\": \"email\", \"value\": \"email\"
},
{
\"name\": \"given_name\",
\"value\": \"firstName\"
},
{
\"name\": \"preferred_username\",
\"value\": \"username\"
},
{
\"name\": \"family_name\",
\"value\": \"lastName\"
}
],
\"client_id\": \"$KK_ID\",
\"client_secret\": \"$KK_SECRET\",
\"scopes\": [
\"openid\",
\"profile\",
\"email\",
\"offline_access\"
],
\"pkce_enabled\": true,
\"code_challenge_method\": \"S256\",
\"idp_type\": \"AzureEntraID\"
}"
Komut dosyası: ./add_oidc_service.sh
Örnek çıktı (kesilmiş):
{
"id": "a230b7b8-8f6c-47db-9327-2e48db8040a9",
"name": "azure",
"is_enabled": true,
"idp_metadata_url": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",
"idp_metadata_load_timestamp": "2025-11-14T16:00:40.356569216Z",
"idp_metadata": {
"issuer": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0",
"...": "additional metadata fields"
},
"code_challenge_method": "S256",
"idp_type": "AzureEntraID",
"is_default": false
}
4.1 OIDC hizmetini listeleme.
Bu adımda OIDC hizmeti listelenir.
Komut:
curl -kL https://$IN_IP/rest/v1/oidc-services --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}"
Senaryo: list_oidc_service.sh
Örnek (kısaltılmış):
./list_oidc_service.sh
{"results":[{"id":"a230b7b8-8f6c-47db-9327-2e48db8040a9","name":"azure","is_enabled":true,"idp_metadata_url":"https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",..."idp_type":"AzureEntraID","is_default":false}]}
5. Microsoft Azure'da yeniden yönlendirme URL'sini yapılandırın.
Bu adım, Microsoft Azure'u kullanıcıları başarıyla oturum açtıktan sonra yeniden yönlendirme URL'si adı verilen bir hedefe gönderecek şekilde ayarlamayı içerir.
Microsoft Azure Portal'da Uygulama Kaydı → Kimlik Doğrulaması → Yeniden Yönlendirme URI'leri'ne gidin ve aşağıdaki URL'yi ekleyin:
https://< PFMP_IP>/auth/realms/powerflex/broker/<SERVICE_ID_AZURE>/endpoint
Örneğin: https://10.247.39.179/auth/realms/powerflex/broker/a230b7b8-8f6c-47db-9327-2e48db8040a9/endpoint
- <> PFMP_IP, PowerFlex Manager IP'sidir (gerekirse ana bilgisayar adını çözümleyin)
- <> SERVICE_ID_AZURE, 4. adımdaki hizmet kimliğinden alınan IdP'dir.
6. Microsoft Azure'da belirteç taleplerini yapılandırın.
a) İsteğe bağlı talepler ekleyin (Kimlik Jetonu)
- Microsoft Azure Portal'da Belirteç yapılandırması→ İsteğe bağlı talep ekle'ye gidin.
- Belirteç türü altında Kimlik'i seçin.
- Hak Talebi altında, aşağıdaki özniteliklerin yanındaki onay kutusunu seçin:
-
E-posta
-
family_name
-
given_name
-
preferred_username
-
- Add (Ekle) öğesine tıklayın.
b) Grup talepleri ekleyin
- Microsoft Azure Portal'da Belirteç yapılandırması→ Grup talepleri ekle'ye gidin.
- Grup talebini düzenle altında, Uygulamaya atanan gruplar'ın yanındaki onay kutusunu seçin.
- Kimlik altında, Group ID öğesinin yanındaki onay kutusunu seçin.
- Access altında, Group ID öğesinin yanındaki onay kutusunu seçin.
- Add (Ekle) öğesine tıklayın.
Bu grup kimliklerini daha sonra PowerFlex Manager kullanıcı arabiriminde PowerFlex rol eşlemesi için kullanacaksınız.
7. Microsoft Azure'da API izinlerini yapılandırın.
Bu adım, PowerFlex in Microsoft Azure'daki korunan kaynaklara doğru erişime sahip olmasını sağlar.
- Microsoft Azure Portal'da API izinleri →Microsoft Graph'a gidin.
- API izinleri iste'nin altında
- API izinleri iste altında Kullanıcı → Okuma öğesini seçin.
- İzinleri güncelleştir'i tıklayın.
8. (İsteğe bağlı) Microsoft Azure'da kullanıcıları/grupları atayın.
Bu adım, uygun kişileri veya ekipleri Microsoft Azure Active Directory içinde belirli rollere veya gruplara atayarak PowerFlex e erişmelerini sağlar.
- Microsoft Azure Portal'da Kurumsal uygulamalar → Kullanıcılar ve gruplar'a gidin.
- Görünen ad altında, kullanıcının/grubun yanındaki onay kutusunu seçin ve nesne kimliğini kopyalayın.
Nesne kimliği, PowerFlex te talep tabanlı rol eşlemesi için kullanılır.
9. (İsteğe bağlı) PowerFlex kullanıcı arayüzüne kullanıcıyı/grubu ekleyin
Bu adım, uygun kullanıcı veya grubu doğrudan PowerFlex Manager kullanıcısına ekleyerek PowerFlex içinde erişim izni vermeyi, böylece atanmış rollerine ve izinlerine göre oturum açabilmelerini ve sistemi kullanabilmelerini sağlamayı içerir.
- PowerFlex Manager kullanıcı arayüzünde oturum açın.
- Ayarlar → Kullanıcı yönetimi → Uzak Kullanıcı/Grup Ekle'ye gidin.
- Aşağıdaki bilgileri girin:
- Tür: grup
- Sağlayıcı: Azure
- Grup adı: herhangi bir anlamlı ad
- Talep Adı: groups
- Kullanıcı rolü: Süper Kullanıcı
- Talep Değeri: Microsoft Azure'dan Nesne Kimliği (8. Adım)
10. İstemciyi CIAM'a ekleyin.
Bu adım, istemciyi PowerFlex'i kaydetmek üzere CIAM'a ekler, böylece CIAM hangi uygulamanın kimlik doğrulaması istediğini, belirteçlerin nereye gönderileceğini, uygulamanın hangi izinlere ihtiyacı olduğunu ve hangi kimlik doğrulama akışlarını kullanabileceğini belirleyebilir.
API: POST /rest/v1/oauth2-clients
Komut:
curl -kL --request POST \
--url "https://$IN_IP/rest/v1/oauth2-clients" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data "{
\"client_name\": \"azure_oidc_client\",
\"redirect_uris\": [\"\"],
\"authorization_code_flow\": false,
\"client_credentials_flow\": false,
\"token_exchange_enabled\": true,
\"offline_access_enabled\": true,
\"client_offline_session_idle\": 1,
\"client_offline_session_max\": 1,
\"client_security_level\": \"TRUSTED\"
Komut dosyası: ./addclient_ciam.sh
Örnek çıktı:
./addclient_ciam.sh
{"id":"77ce10cb-c40e-4c1e-b922-07014b5b6e7b","client_name":"azure_oidc_client","client_secret":"QXDtyVYO5l3Puj2ZMACz/MK+sTSOqDHy53oRhVkXiBc=","redirect_uris":[""],"authorization_code_flow":false,"client_credentials_flow":false,"signing_algorithm":"RS256","refresh_token_max_reuse":3,"access_token_expiration_duration":360,"token_exchange_enabled":true,"client_security_level":"TRUSTED","offline_access_enabled":true,"client_offline_session_idle":1,"client_offline_session_max":1
10.1 İstemciyi listeleyerek eklendiğini doğrulayın.
Bu adım, tüm mevcut istemcileri listeleyerek istemcinin başarıyla eklendiğini doğrular.
Komut:
curl -kL https://$IN_IP/rest/v1/oauth2-clients --header 'Content-Type: application/json' --header "Authorization: Bearer ${PM_TOKEN}" | jq -r '.results[]'
Komut dosyası: ./list_clients_ciam.sh
Örneğin:
./list_clients_ciam.sh
{
"id": "77ce10cb-c40e-4c1e-b922-07014b5b6e7b",
"client_name": "azure_oidc_client",
"redirect_uris": [
""
],
"authorization_code_flow": false,
"client_credentials_flow": false,
"signing_algorithm": "RS256",
"refresh_token_max_reuse": 3,
"access_token_expiration_duration": 360,
"token_exchange_enabled": true,
"client_security_level": "TRUSTED",
"offline_access_enabled": true,
"client_offline_session_idle": 1,
"client_offline_session_max": 1,
"num_failed_login_attempts": 0
}
10.2 İstemciyi değiştirme.
Bu adım, CIAM'deki mevcut bir oturum açma istemcisini günceller. Yük boş kalmalıdır ({}). Bu komut, Keycloak istemcisine PowerFlex gerekli eşlemelerini ekler.
Komut:
curl -k -X PATCH "https://$IN_IP/rest/v1/login-clients/$1" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${PM_TOKEN}" \
--data '{}'
Komut dosyası: ./update_client.sh <ID_FROM_ADD_CLIENT_CIAM>
Örneğin:
./update_client.sh 77ce10cb-c40e-4c1e-b922-07014b5b6e7b
{"id":"1c3dbd45-66bc-44c7-94ce-1aef3a282afc","name":"azure_oidc_client","client_id":"77ce10cb-c40e-4c1e-b922-07014b5b6e7b","is_enabled":true,"client_secret":null,"redirect_uris":[""],"web_origins":[""]}
11. Belirteç değişimi eşlemesi için uygulamayı CIAM'ye ekleyin
Bu adım, harici kimlik doğrulama, yetkilendirme ve güvenli kimlik akışlarını etkinleştirmek için uygulamayı CIAM'ye ekler.
API: POST /rest/v1/oauth2-token-exchanges
Gerekli değişkenler:
- LOCAL_CLIENT_ID: addclient_ciam.sh'dan kimlik (ör. 77ce10cb-c40e-4c1e-b922-07014b5b6e7b)
- EXT_CLIENT_ID: Microsoft Entra Kimliği Uygulama (istemci) kimliği (ör. 859c0721-cb0c-433c-a437-bd2d2462754f)
- META VERİ: Microsoft Azure uygulama meta veri URL'si (ör. https://login.microsoftonline.com/< Tenant_id>/v2.0/.well-known/openid-configuration)
- IDP: OIDC hizmet kimliği (ör. a230b7b8-8f6c-47db-9327-2e48db8040a9)
- ROLÜ: PowerFlex rolü (ör. Süper Kullanıcı)
- PM_TOKEN: API taşıyıcı belirteci
- IN_IP: Hedef ana bilgisayar/IP adresi
Komut:
curl -kL -X POST "https://$IN_IP/rest/v1/oauth2-token-exchanges" \
-H "Content-Type: application/json" \
-H "clientId: $LOCAL_CLIENT_ID" \
-H "Authorization: Bearer ${PM_TOKEN}" \
--data @- <<EOF
{
"ciam_oauth2_client_id": "$LOCAL_CLIENT_ID",
"customer_client_id": "$EXT_CLIENT_ID",
"customer_metadata_url": "$METADATA",
"idp_service_id": "$IDP",
"static_roles": ["$ROLE"]
}
Komut dosyası: ./add_app.sh
11.1 Uygulama kimliğini listeleme
Bu adım, aşağı akış yetkilendirmesi ve belirteç değişimi işlemleri için gereken benzersiz istemci tanımlayıcısını doğrulamak üzere uygulama kimliğini alır.
Komut:
curl -kL "https://$IN_IP/rest/v1/oidc-services" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${PM_TOKEN}"
Komut dosyası:
./list_apps.sh
Örneğin:
./list_apps.sh
{ "id": "f803da04-2979-49dc-9408-496f127639b4",
"ciam_oauth2_client_id": "77ce10cb-c40e-4c1e-b922-07014b5b6e7b",
"customer_client_id": "859c0721-cb0c-433c-a437-bd2d2462754f",
"customer_metadata_url": "https://login.microsoftonline.com/945c199a-83a2-4e80-9f8c-5a91be5752dd/v2.0/.well-known/openid-configuration",
"idp_service_id": "a230b7b8-8f6c-47db-9327-2e48db8040a9",
"static_roles": [
"SuperUser" ]
}
12. Keycloak'ta rolleri eşleme (PowerFlex Bölgesi)
Bu adım, kimlik sağlayıcı rolü atamalarını PowerFlex yetkilendirme gereksinimleriyle hizalamak için PowerFlex Keycloak alanındaki rolleri eşler.
1. Şu uç noktayı kullanarak Keycloak'ta oturum açın: https://< PFMP_IP>/auth/admin/
Örneğin: https://10.247.39.179/auth/admin/
Keycloak'ta oturum açmak için kimlik bilgileri aşağıdaki gibi alınabilir
Komut:
kubectl get secret keycloak-admin-credentials -o json -n powerflex | jq '.data | map_values(@base64d)'
Komut dosyası: ./get_keycloak_creds.sh
Örneğin:
./get_keycloak_creds.sh
{
"password": "sZFmHmfhjj",
"username": "keycloak"
}
2. Keycloak örneğinde PowerFlex öğesini seçin.
3. Kullanıcılar'a tıklayın ve kullanıcı kimliğini seçin ve öznitelikleri CIAM'de kullanılan rolle eşleşecek şekilde güncelleyin (örneğin, Süper Kullanıcı).
4. Role mapping altında rolün güncelleştirildiğini doğrulayın.
13. Microsoft Azure belirtecini edinin (Kaynak Sahibi Parola Kimlik Bilgileri / kullanıcı adı + parola)
Microsoft Azure AD'den belirteç almanın birden çok yolu vardır. Bu adım örneğinde uygulama, OAuth 2.0 belirteci almak için kullanıcının kullanıcı adı + parolasını doğrudan belirteç uç noktasına göndererek Microsoft Entra Kimliği'nde (Azure AD) oturum açmaktadır. Bu, Kaynak Sahibi Parola Kimlik Bilgileri (ROPC) iznidir.
Komut:
curl -X POST https://login.microsoftonline.com/$TENANT_ID/oauth2/token -H 'Content-Type: application/x-www-form-urlencoded' -d "grant_type=password&client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&username=$USERNAME&password=$encoded_password&resource=$RESOURCE")
Komut dosyası:./get_azure_token.sh
İpucu: Belirtecin geçerli olduğundan emin olmak içinJSON Web Belirteci (JWT) Hata Ayıklayıcısı'na (Dış Bağlantı) gidin
14. Microsoft Azure belirtecini PowerFlex belirteci (CIAM) ile değiştirme
Bu adım, PowerFlex API'lerinin çağrılabilmesi için Microsoft Azure belirtecini bir PowerFlex CIAM belirteci ile değiştirir.
API: POST /rest/v1/token
Değişken:
- CIAM_CLIENT_ID - İstemciyi CIAM'a ekleme adımından istemci kimliği (10. adım)
- CIAM_CLIENT_SECRET - İstemciyi CIAM'a ekleme adımında istemci gizli anahtarı (adım 10)
- EXT_TOKEN - Microsoft Azure'dan Belirteç
Komut:
curl -kL -X POST https://$IN_IP/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: $CIAM_CLIENT_ID" \
--header "ClientSecret: $CIAM_CLIENT_SECRET" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${EXT_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt"
Komut Dosyaları: ./token.sh (EXT_TOKEN kullanır, bu nedenle çevresel değişkeni buna göre ayarlayın)
Örnek çıktı (kesilmiş):
{
"access_token": "ey...A",
"issued_token_type": "urn:ietf:params:oauth:token-type:access_token",
"token_type": "Bearer",
"expires_in": 1800,
"refresh_token": "ey...qA"
}
15. PowerFlex REST API'ye erişimi doğrulama
Bu adım, bir PowerFlex REST uç noktasını çağırarak belirtecin çalıştığını doğrular. env değişken PM_TOKEN olarak dışa aktarılan "token.sh" çıktısındaki access_token kullanır.
ihracat PM_TOKEN=eyJhb...eN_A
Komut:
curl -k --location --request GET https://$IN_IP/Api/V1/Credential --header 'Content-Type: application/json' --header "Authorization: Bearer $PM_TOKEN"
{
"totalRecords" : 3,
"credentialList" : [ {
"link" : {
"title" : "root",
"href" : "getCredential/69087b0c-cce7-4be7-b154-e8a3019cc553",
"rel" : "self",
"type" : null
},
"credential" : {
"type" : "OSCredential",
"id" : "69087b0c-cce7-4be7-b154-e8a3019cc553",
....
"link" : null,. "link" : null,. "link" : null, "references" : {
"devices" : 0,
"policies" : 0
}
} ]
}
Referans bilgiler
API dizisinin özeti
- PowerFlex
için CIAM'ı başlatma(/rest/v1/sso-ciam/init) - PowerFlex i OIDC servis sağlayıcısı
olarak yapılandırın(/rest/v1/oidc-sp-config) - CIAM Hizmetleri
için sertifika ekleme(DigiCert, GlobalSign vb.) - Microsoft Azure Entra Kimliğini OIDC Hizmeti
olarak kaydetme(/rest/v1/oidc-services) - Microsoft Azure Kimlik Doğrulama sekmesinde
Hizmet Kimliğini Yapılandırma(Aracı uç nokta eşlemesi) - Microsoft Azure'da belirteç ve grup talepleri ayarlama
(İsteğe bağlı talepler, API izinleri) - CIAM'a
OAuth2 istemcisi ekleme(/rest/v1/oauth2-clients) - Belirteç değişimi
için CIAM'a uygulama ekleyin(/rest/v1/oauth2-token-exchanges) - PowerFlex belirteci ile değiştirmek için Microsoft Azure belirteci
edinin(/rest/v1/token) - PowerFlex REST API'lerine erişimi doğrulama
Belirteç değişimi gerçekleştirme komutları
PowerFlex API'lerini Microsoft Azure Entra belirteci ile çağırma
Belirteç değişimi gerçekleştirme komutu:
curl -kL -X POST https://$PFMP_IP/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: $CIAM_CLIENT_ID" \
--header "ClientSecret: $CIAM_CLIENT_SECRET" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${AZURE_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt" | jq '.'
Örneğin:
curl -kL -X POST https://10.247.39.179/rest/v1/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header "ClientId: 77ce10cb-c40e-4c1e-b922-07014b5b6e7b" \
--header "ClientSecret: QXDtyVYO5l3Puj2ZMACz/MK+sTSOqDHy53oRhVkXiBc=" \
--data "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data "subject_token=${AZURE_TOKEN}" \
--data "subject_token_type=urn:ietf:params:oauth:token-type:jwt" | jq '.'
Değiştirilen belirteçle PowerFlex Manager Cihazı API'sini çağırma
curl -kL 'https://10.247.39.179/api/v1/appliance' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIzMkNrM2YwNEI5OG5pRENza19IVmZ3R..._dxDp9QGWdteptby-8aaA'
Değiş tokuş belirteci ile PowerFlex Block API'sini çağırma
curl -kL GET https://10.247.39.179/api/types/Volume/instances --header 'Content-Type: application/json' --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIzMkNrM2YwNEI5OG5pRENza19IVmZ3R..._dxDp9QGWdteptby-8aaA "
[
{
"genType": "EC",
"mappedSdcInfo": [
{
"limitIops": null,
"limitBwInMbps": null,
"isDirectBufferMapping": null,
"sdcIp": "",
"sdcId": "15d47a2400010000",
"sdcName": "513fda498aaf35e883da34f6ac46480",
"nqn": "nqn.2014-08.org.nvmexpress:uuid:72f30442-1cf7-0f5b-129c-da4fae6a028b",
"accessMode": "ReadWrite",
"hostType": "NVMeHost"
}
],
"managedBy": "ScaleIO",
"originalExpiryTime": 0,
"retentionLevels": [],
"snplIdOfSourceVolume": null,
"volumeReplicationState": "UnmarkedForReplication",
"replicationJournalVolume": false,
"replicationTimeStamp": 0,
"name": "csivol-21ef5b460c",
"creationTime": 1763382058,
"storagePoolId": "0ebdb61000000000",
"dataLayout": "ErasureCoding",
"vtreeId": "97957f7d00000002",
"sizeInKb": 8388608,
"compressionMethod": "NotApplicable",
"volumeClass": "defaultclass",
"accessModeLimit": "ReadWrite",
"lockedAutoSnapshotMarkedForRemoval": false,
"snplIdOfAutoSnapshot": null,
"pairIds": null,
"useRmcache": false,
"volumeType": "ThinProvisioned",
"consistencyGroupId": null,
"ancestorVolumeId": null,
"notGenuineSnapshot": false,
"secureSnapshotExpTime": 0,
"lockedAutoSnapshot": false,
"autoSnapshotGroupId": null,
"timeStampIsAccurate": false,
"nsid": 3,
"id": "77d698a400000002",
"links": [
{
"rel": "self",
"href": "/api/instances/Volume::77d698a400000002"
},
{
"rel": "/dtapi/rest/v1/metrics/query",
"href": "/dtapi/rest/v1/metrics/query",
"body": {
"resource_type": "volume",
"ids": [
"77d698a400000002"
]
}
},
{
"rel": "/api/parent/relationship/vtreeId",
"href": "/api/instances/VTree::97957f7d00000002"
},
{
"rel": "/api/parent/relationship/storagePoolId",
"href": "/api/instances/StoragePool::0ebdb61000000000"
}
]
},
{
"genType": "EC",
"mappedSdcInfo": null,
"managedBy": "ScaleIO",
"originalExpiryTime": 0,
"retentionLevels": [],
"snplIdOfSourceVolume": null,
"volumeReplicationState": "UnmarkedForReplication",
"replicationJournalVolume": false,
"replicationTimeStamp": 0,
"name": "csivol-4ea9633592",
"creationTime": 1763380456,
"storagePoolId": "0ebdb61000000000",
"dataLayout": "ErasureCoding",
"vtreeId": "9795586d00000000",
"sizeInKb": 8388608,
"compressionMethod": "NotApplicable",
"volumeClass": "defaultclass",
"accessModeLimit": "ReadWrite",
"lockedAutoSnapshotMarkedForRemoval": false,
"snplIdOfAutoSnapshot": null,
"pairIds": null,
"useRmcache": false,
"volumeType": "ThinProvisioned",
"consistencyGroupId": null,
"ancestorVolumeId": null,
"notGenuineSnapshot": false,
"secureSnapshotExpTime": 0,
"lockedAutoSnapshot": false,
"autoSnapshotGroupId": null,
"timeStampIsAccurate": false,
"nsid": 1,
"id": "77d6719400000000",
"links": [
{
"rel": "self",
"href": "/api/instances/Volume::77d6719400000000"
},
{
"rel": "/dtapi/rest/v1/metrics/query",
"href": "/dtapi/rest/v1/metrics/query",
"body": {
"resource_type": "volume",
"ids": [
"77d6719400000000"
]
.
.
.
]
}
]