Key Pair or Oauth configuration for snowflake service accounts - security

I have gone through below document in snowflake, talking about securing service accounts.
https://www.snowflake.com/blog/snowflake-service-account-security-part-2/
Could you please let us know if any one use "Key Pair" or "Oauth" configuration for service accounts.
In our case, we are using service accounts to connect ETL to snowflake.
It will grateful if any one can help me to secure service accounts in snowflake.
Regards,
Srinivas.

For Kaypair authentication - it depends on the driver/connector, the ETL application is using to connect Snowflake. Below are a couple of links.
JDBC KeyPair Authentication
ODBC KeyPair Authentication
Python Connector Authentication
Spark COnnector Authentication
For OAuth - You need to select Oauth Server for generating the Token. You can then use the token in the connection string for your connection.

Related

Setting up Snowflake ODBC with Azure AD SSO for Excel/Power BI

I'm looking to use an ODBC connection in Excel to pull data from our DW, we access Snowflake via Azure AD so we don't have a password.
I got the User DSN setup fine, using only the following parameters:
server (format [organisation].[region].snowflakecomputing.com
tracing (defaulted to 4)
authenticator = externalbrowser
I can't test the connection because there's no username or password, and from the documentation on Snowflake (https://snowflakecommunity.force.com/s/article/HOW-TO-connect-to-Snowflake-authenticating-with-Azure-AD-SSO-from-MS-Excel-ODBC-driver) it suggests that when trying to connect via the ODBC in Excel, I should get a browser window to sign-in to Azure, but this isn't happening?
Any ideas what might be amiss?
When you mention that you access SF from Azure AD, does that imply that the SF app is listed on the Azure AD Tile for users and they select it to be given access? If so, then that is called as the IDP initiated SSO but that cannot be directly used logging in from Excel to SF. I am not sure if there is any plugin for excel that can do this but if using "externalbrowser" then the authn expects the user / pwd conmbination.
If looking to do without the password part, then I think the Seamless SSO would be needed. Check this out: https://learn.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso

Springboot+Oauth Client Credential Grant Flow with Azure AD

I am trying to protect my API (springboot+java) using Client Credential Grant flow with Azure AD as Authorization Server.
I have looked the internet but the examples I am finding is resource and authorization server in springboot.
Does anyone has any samples of how to secure API with Client Credential Grant Flow using Java Springboot and Azure AD?
Any help will be highly appreciated.
We use client credentials flow to get access token with the following steps. The access token is provided by Azure AD.
Try this sample with ClientCredentialsResourceDetails.

What will be Redirect URI type (web/Native) for Power Bi dataset refresh from Azure Data factory

I've a requirement of refreshing the Power BI dataset from Azure data factory. I want to do it by calling the Power BI Rest API service. For authentication process I need a access token which I can get using a Client ID and secret. So, while registering the app I was wondering what type of redirect URI should I select? And how does it link with my task because I'm neither creating any web app or native app.
Regarding MS docs about creating Daemon application for authorization:
"During application registration, the reply URI isn't needed. You need to share secrets or certificates or signed assertions with Azure AD. You also need to request application permissions and grant admin consent to use those app permissions."
Please, read a whole documentation over here: https://learn.microsoft.com/en-gb/azure/active-directory/develop/scenario-daemon-overview

Azure API Management Client Authentication

I have an API Management resource on Azure which uses an API running as a Kubernetes cluster.
I want to have OAuth2.0 authentication for clients/applications which connect to the API management URL. I do not want any user authentication, but only want clients which want to use the URL to send a client ID and client Secret.
How do I do this?
I could not find anything related to this in the documentation.
If you dont want user context to be involved, You must prepare client credential flow from Oauth2.0 which uses client id and client secret.
I am explaining using Azure AD.
1) Create Application in Azure AD and get client id and secret
(https://www.netiq.com/communities/cool-solutions/creating-application-client-id-client-secret-microsoft-azure-new-portal/)
2) Call token end point of Azure AD to get secured token
(https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-protocols-oauth-service-to-service)
3) Pass this token to APIM using authorize or from any header
4) Validate JWT and check issuer,audience and application level scopes
(https://learn.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#ValidateJWT)
No sure what exactly are you asking!
But here are two places where you will find a solution to your question:
How to secure your backend apis: https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad
API Management access restriction policies: https://learn.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies. More specific here check the Validate JWT (https://learn.microsoft.com/en-us/azure/api-management/api-management-access-restriction-policies#ValidateJWT)

Azure ACS Service Identities with Certificate based Credentials

I am exposing a WCF Data Services hosted on IIS through Service Bus Relay using webHttpRelayBinding. While I could find out how to authenticate the service identity using username/password or shared secret. However, I could not find a sample how to use a certificate based credential for the service identity. I googled a lot, but in vain. All of them are based on shared secret primarily.
Could anyone please provide a sample on how to use the certificate based authentication of service identity for a REST OData service.
Currently, there are four options for authentication (according to the Service Bus docs):
•SharedSecret, a slightly more complex but easy-to-use form of
username/password authentication.
•Saml, which can be used to interact with SAML 2.0 authentication
systems.
•SimpleWebToken, which uses the OAuth Web Resource Authorization
Protocol (WRAP)and Simple Web Tokens (SWT).
•Unauthenticated, which enables interaction with the service endpoint
without any authentication behavior.
It does not look like you are able to authenticate using a certificate through Service Bus natively.

Resources