Is there a way to integrate RingCentral data with on promises database? - database

Is there any way to fetch and load RingCentral data in our database? Can we use REST API or it can be integrated directly?
I'm trying to retrieve reporting data.
How exactly can I get access token, is it generated by RingCentral?

What reporting data are you trying to sync?
General REST API Info
The RingCentral REST API can be used to retrieve and load data into your own database or any other system. There is also an event system that supports webhooks and client-based PubNub subscriptions.
Learn more about the REST API here:
https://developers.ringcentral.com/api-reference
In addition to using the REST API directly, a variety of SDKs are available here:
https://developers.ringcentral.com/guide/sdks
Reporting Data API
Can you be more specific on what kind of reporting data you are interested in?
It is popular to sync the Call Log CDR (Call Details Record) data to databases. Read more on the Call Log APIs here:
https://developers.ringcentral.com/guide/voice/call-log/reading-call-log
Getting an Access Token for the API
Regarding authentication to get an access token to use the API, RingCentral supports OAuth 2.0. See the following Developer Guide page on Authentication which covers the various OAuth 2.0 grant type approaches that are supported, including
Authorization Code Flow (3-legged flow)
Password Flow
Implicit Grant Flow
PKCE is also supported with the Authorization Code Flow.
https://developers.ringcentral.com/guide/authentication
Direct Integration
Direct integration is available via various pre-integrated connectors.
See the RingCentral App Gallery to see various apps that have been integrated like Salesforce, HubSpot and others.
https://www.ringcentral.com/apps/

Related

Authentication failed using Graph API

I am trying to build a Windows form app for cloud migration and while authenticating OneDrive using Microsoft Graph API, i am getting this exception.
Please help or give any workaround
Before you can execute a call against Microsoft Graph, you'll first need to authenticate that user and retrieve an access token. Each time you make a call to Graph, you'll include this token in your HTTP request Authorization header.
In order operate against a user's data, you'll also need to request the proper permission scopes during the authentication process. From what I understand of your scenario here , you'll need at least Files.ReadWrite.
If your application is build on .NET 4.5 or newer, you may also want to go with the Microsoft Graph .NET SDK. This will simplify calling the API itself. It will not however handle the authorization process. For obtaining the token you can use Microsoft Authentication Library (MSAL).
There is an excellent walkthrough for this as well: Call the Microsoft Graph API from a Windows Desktop app. While it isn't specific to Windows Forms, the concepts are pretty similar.

Which option is better, MSAL.js or OpenIdConnect nuget package at Web API

We have a SharePoint publishing site with anonymous access hosted on internet. As per the latest requirements, we need to implement user login (AzureAD, Microsoft personal and work accounts, and more) for some pages within the portal.
There are two approaches we have come up with:
Using msal.js file. Implementing login of user at client side itself and calling Partner Center Web API with user token to check the validity of the user plus performing required operations.
Create a Web API with with Microsoft.Owin.Security.OpenIdConnect nuget package at Web API end to implement login and also use it for doing out required operation of retrieving and modifying data from the backend.
Which approach may work best in our scenario?
Is there any other way to achieve this?
The difference between these two approaches is that they are using the different flows to integrate with the identity data provider.
The second approach that using the server-side code is using the authorization code grant flow which is a stand flow to interact with identity data provider.
The first approach that using the msal.js is using the implicit flow. is a simplified authorization code flow optimized for clients implemented in a browser using a scripting language such as JavaScript. In the implicit flow, instead of issuing the client an authorization code, the client is issued an access token directly.
More detail the flows using the OAuth 2.0 are defined in the OAuth 2.0 Authorization Framework.

Google Cloud Endpoints - Authenticating users from internal database

(intro)
I am new to Google Cloud Endpoints and I have started to build some HTTP REST services.
The purpose of those services is to be consumed directly by the users of my application (Business to Consumer - not business to business).
(The question)
I need to secure my services in a way to have only registered users being able to retrieve sensible data (and after login). My main purpose is to have the list of registered users saved in my database on CloudSQL (Dont want to use FB of Google Accounts). I was not able to find particular information about this point in the official Google documentation regarding authentication.
Can anyone advise me of the way to proceed and suggest some tutorials?
Thank you in advance.
The Endpoints proxy can validate JWTs, and we provide a couple of alternatives for creating those. Both Auth0 and Firebase have good user management capabilities and client-side libraries for generating JWTs. Both allow you to choose an identity provider (like FB or Google) or simply use username/password.
Check out the documentation here.
If you don't want to use Auth0 or Firebase Authentication, you can sign JWTs yourself with a private key and just give the proxy the URL of the Public Key (see the "Custom" tab on that same documentation page).
As far as looking up individual users in the database, you would have to do that part on your own.

Azure Logic Apps- Securing Manual Http Trigger

Is there a method to secure a Manual Http Trigger in a logic App with Basic Authentication.
Is this achieved through APi Management.
The authentication mechanism used by Logic Apps is based on SAS keys that only a user with management access to the resource can list. In case any of the keys are exposed, you can use the /regenerateAccessKey operation on the logic app. See this article for details.
In addition there is a capability to restrict firing a logic app if not coming from a specific range of IP addresses. This is not yet surfaced in the azure portal (as of 2016-11-09), but could be done manually via PowerShell and/or the management APIs.
For any other authentication mechanisms you would indeed want to use API Management as a frontdoor to your logic apps.

SalesForce to emulate a google session login

I'm pretty new to SalesForce and their Apex language. I've been reading some documentation and tried the integration between Google and SalesForce.
I'm wondering is it possible to emulate an auth token from google to SalesForce?
I'm trying to read a google spreadsheet and then fill up a SalesForce object automatically. The user login will always be the same/universal for this spreadsheet, so I have the credentials required to login.
I am working off of the sample that requires a visualforce, and I'm wondering how would I automatically do the session id token that the google spreadsheet API requires.
Any ideas?
The old-school, hard way would be to send a login() call to the API (available through SOAP messages). Salesforce API is well documented and plenty of examples are available (both in programming languages and for raw XML requests/responses).
But I have no idea what possibilities you have from Google side, if it's only JavaScript then you might not be able to send and retrieve AJAX-like calls to another domain...
Recently another option emerged and that is REST API (no SOAP needed). Looks more promising and easier in my opinion. Quick intro is available here and you'll find more documentation on the bottom of the page.
Last but not least - 2 interesting links:
http://code.google.com/apis/gdata/articles/salesforce.html for some integration tutorial
and built-in integration offered by Salesforce: http://www.salesforce.com/assets/pdf/datasheets/SalesforceGoogleApps.pdf
I've used custom settings to do this. Use OAuth to get a token for Google, then store that token in Salesforce custom settings (Setup-Develop-Custom Settings). You can then retrieve the token for callouts to Google from that custom setting for any user needing access to Google Apps. The downside is, every user will authenticate as your custom setting token user. The upside is that they won't need to individually authenticate. Custom settings are retrievable via Apex using a simple getter, and live as Apex-like objects.
Also keep in mind, Google requires each service to use it's own token. So, if your user wants to use Calendars and Spreadsheets, that's two separate tokens that will need to be stored and retrieved for the callout.
I generally allow users to create their own authenticated session tokens via OAuth if they want to do that, then failover to the custom settings to get the general admin token if necessary.
Are you trying to log into Google Apps from SFDC? There are options for Google Apps within Salesforce, go to Setup > Administration Setup > Google Apps > Settings. I've not used this and it requires some setup, but thought I'd point it out. Aside from that I can only blurt out OAuth (getting users to authenticate with Google from within Salesforce when trying to access Google Apps) and SSO (which I know can be used to authenticate from an external system, though not sure if it works the other way).
Look into the "Named Credentials" menu in salesforce setup.
There, you can store auth credentials for the services accessed via Apex:
"A named credential specifies a callout endpoint and its required authentication parameters. When setting up callouts, avoid setting authentication parameters for each callout by referencing named credentials."
a username/pass combo can be used, or a certificate, or an AWS signature, and there is a JWT option..
Help docs: https://help.salesforce.com/articleView?id=named_credentials_about.htm&type=5

Resources